这是一个非常基本的问题,可能很简单。假设我有一个名为Product的模型。当我添加
map.resources :products
到我的routes.rb我可以访问一些默认路径new_product_path,edit_product_path等等。据我所知,这应该在链接到资源时使用,例如使用link_to辅助方法:
link_to "Edit Product", edit_product_path(@product)
我的问题是:当我有其他控制器方法时,我该怎么办,例如
def do_something
...
end
链接到此控制器方法的“最佳”方式是什么?
link_to "Do Something", {:controller => 'products', :action => 'do_something', :id => @product.id}
肯定会起作用。但这是我应该使用的吗?
我希望我明白我的观点!如果没有,请评论。我会尝试更好地解释它。
答案 0 :(得分: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)
如果您希望URL对所有产品(例如更复杂的索引页面)进行操作,请务必阅读有关“收集路线”的部分。