2010-01-12 68 views
0

这是一个非常基本的问题,可能有一个简单的答案。假设我有一个名为Product的模型。当我添加在Rails中将URL传递给link_to的默认方式

map.resources :products 

我的routes.rb我有权访问一些默认路径new_product_path,edit_product_path等。据我所知,这应该在链接到资源时使用,例如使用的link_to helper方法:

link_to "Edit Product", edit_product_path(@product) 

我的问题是:当我有其他控制器的方法,如,该怎么办例如

def do_something 
    ... 
end 

什么是“最好”的方式链接到该控制器的方法?

link_to "Do Something", {:controller => 'products', :action => 'do_something', :id => @product.id} 

肯定会工作。但是,我应该使用什么?

我希望我明确我的观点!请不要评论。我会试着更好地解释它。

回答

1

您可能想了解Rails路由,具体来说,adding a new Restful route

如果使用这种方法,我认为这是相当简单:

# routes.rb 
map.resources :products, :member => { :do_something => :get } 

# your view.rb file 
link_to "Do Something", do_something_product_path(object_id) 

另外,还要确保你阅读节中有关“路由集”,如果你想要的网址上所有的产品操作(如更复杂的索引页面)。

+0

感谢您的快速回答 – StefanS 2010-01-12 20:02:13

+0

@ Stefan @ - 很高兴帮助:-) – 2010-01-12 20:06:37