为自定义路由创建link_to

时间:2010-11-29 00:04:37

标签: ruby-on-rails routes

我有一个自定义路线(如果我这样做,这是我第一次这样做),看起来像这样:

map.connect 'purchases/type/:type', :controller => 'purchases', :action => 'index'

所以我想创建一个使用该url / purchases / type /(somenumber)的link_to

或者我完全愿意接受更好的方式。

修改

我正在尝试使用类别(类型)来过滤索引。所以,如果我点击将是/ purchases / type / 1的链接,它将显示类型1中的所有项目。我不希望这个在节目中,我可以用/ purchases /?type = 1,但即时尝试使网址看起来更好。

2 个答案:

答案 0 :(得分:6)

未经测试,但我相信这就是你想要的......

map.purchase_type 'purchases/type/:type', :controller => 'purchases', :action => 'index'

然后

link_to 'foo', purchase_type_path(:type => 'your_type')
祝你好运。

答案 1 :(得分:1)

基于http://www.tutorialspoint.com/ruby-on-rails-2.1/rails-routes.htm(“命名路线”部分),我会尝试以下方法:

map.purchases_for_type 'purchases/type/:type', :controller => 'purchases', :action => 'index'

我猜你会用link_to 'link text', purchases_for_type(@type_param)

来称呼它

作为参考,我将包含Rails3方法:

match '/purchases/type/:type' => 'purchases#index', :as => "purchases_for_type", :via => "get"

或者更好(RESTful):

match '/type/:type/purchases' => 'purchases#index', :as => "purchases_for_type", :via => "get"

然后,您可以使用link_to 'link text', purchases_for_type(@type_param)

进行调用