编写不接受获取查询参数的rails路由

时间:2013-04-26 00:51:50

标签: ruby-on-rails-3 routes

我希望匹配特定路线,但不匹配任何获取查询参数的路线。

假设我有这样的路线:

get '/home', to: 'home#home

这适用于/home,但我如何404 /home?foo=bar

2 个答案:

答案 0 :(得分:1)

如果?foo=bar在您的应用中没有任何意义,则根本不起作用。

访问/home?foo=bar将结束/home。这是一个非常惯例。你为什么需要404?

答案 1 :(得分:0)

您可以使用高级约束来执行此操作 http://guides.rubyonrails.org/routing.html#advanced-constraints

class NoQueryParamsConstraint
  def matches?(request)
    request.query_parameters.blank?
  end
end


get "/home", to: 'home#home', constraints: NoQueryParamsConstraint.new