2011-09-16 60 views
0

我想確定我的控制器操作是否用參數調用,而不用硬編碼可以添加哪些參數。如何判斷您的控制器操作是否有參數?

所以我想區分

之間
/my_controller 

/my_controller?q=1 

我知道,我可以看看params哈希表內,並檢查其是否只包含:控制器和:操作鍵。這對我來說似乎很難看,有沒有更聰明的方法來做這個檢查?

回答

3

有一個直接的解決方案:

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

或者使用Ruby 1.9.2:

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

回答? – apneadiving

+0

是的,這個工程。謝謝 – spike

1

對於GET請求,您可以使用request.query_parameters方法。 POST請求也有request.request_parameters

結果request.query_parameters.inspect是:

  • 關於 '/ my_controller'=> '{}'
  • 關於 '/ my_controller Q = 1?'=> { 「Q」=> 「1」}
+0

我也喜歡這個解決方案,只是找到了它的用處。 – spike

相關問題