如何判断控制器动作是否为参数?

时间:2011-09-16 19:55:03

标签: ruby-on-rails ruby-on-rails-3

我正在尝试确定是否使用参数调用了控制器操作,而没有硬编码可以添加哪些参数。

所以我想区分

/my_controller

/my_controller?q=1

我知道我可以查看params哈希值,并检查它是否仅包含:controller和:action键。这对我来说似乎很难看,有没有更聪明的方法来做这个检查?

2 个答案:

答案 0 :(得分:3)

有一个直接的解决方案:

request.env["QUERY_STRING"] # => "q=1"

或者使用Ruby 1.9.2:

request.env.QUERY_STRING # => "q=1"

答案 1 :(得分:1)

对于GET请求,您可以使用request.query_parameters方法。 POST请求也有request.request_parameters

request.query_parameters.inspect的结果是:

  • for'/ my_controller'=> '{}'
  • for'/ my_controller?q = 1'=> { “Q”=> “中1”}