代码之家  ›  专栏  ›  技术社区  ›  John F. Miller

Merb路由器:如何返回406错误

  •  0
  • John F. Miller  · 技术社区  · 16 年前

    /?tag=ruby '需要返回406错误。取而代之的是,路由器尽职尽责地将它们路由到与 /

    1 回复  |  直到 16 年前
        1
  •  0
  •   John F. Miller    16 年前

    这并不明显,但它是有效的。

    解决方案:

    match('/',:query_string=>/.+/).defer_to do |request, params|
      raise Merb::ControllerExceptions::NotAcceptable, 
            "Query String Unknown: #{request.query_string}"
    end
    

    说明:

    Merb::ControllerExceptions::NotAcceptable 但是,如果我们在设置路线的同时这样做,那对任何人都没有帮助。相反,我们需要等到Merb处理请求。这就是 defer_to

    问题

    我最初的问题的一个目标是避免所有的调度开销。相反,此解决方案是通过异常控制器调度的,而异常控制器的计算成本比异常控制器高 [406,{'content-type'=>'text/plain},['406 Not Acceptable']]

    推荐文章