在Rails中将URL传递给link_to的默认方式

时间:2010-01-12 19:50:36

标签: ruby-on-rails

这是一个非常基本的问题,可能很简单。假设我有一个名为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}

肯定会起作用。但这是我应该使用的吗?

我希望我明白我的观点!如果没有,请评论。我会尝试更好地解释它。

1 个答案:

答案 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对所有产品(例如更复杂的索引页面)进行操作,请务必阅读有关“收集路线”的部分。