如何在rails 3中要求和检查url参数

pho*_*1re 4 ruby-on-rails ruby-on-rails-3

路由文件中是否有一种方法可以检查和验证URL参数.我不是在谈论宁静的'/ controller/action /:id'参数,而是'controller/action?param1 = x¶m2 = y¶m3 = z'.我需要能够验证每个参数并要求它们.

Pan*_*kos 8

是的你可以.例如,要检查param1是否存在且不是空白,您将执行以下操作:

match 'c/action' => 'c#action', :constraints => lambda{ |req| !req.params[:param1].blank? }
Run Code Online (Sandbox Code Playgroud)

您还可以限制这些约束以将它们应用于多个路径:

scope :constraints => lambda{ |req| !req.params[:param1].blank? } do
  match 'controller/action1' => 'controller#action1'
  match 'controller/action2' => 'controller#action2'
end
Run Code Online (Sandbox Code Playgroud)