Rails,构造任意控制器的url,动作和零个或多个params

时间:2012-10-29 17:33:57

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

这是我目前的工作流程:

c = get_some_controller # => "fruits" or nil
a = get_some_action # => "list"
p = get_some_params # => { :type => :orange, :price => 10 }

url = url_for(:controller => c, :action => a) # no option for params ??

所以,这是我的问题,url_for似乎没有任何传递参数的选项。

我想这个用例很常见,但是由于某些原因导轨不支持它或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

您只需将params作为附加键传递:

url_for(p.merge(:controller => c, :action => a))

或许或许更清楚,你也可以做到:

url_for(:controller => c, :action => a, :type => :orange, :price => 10)