Rails 3链接或在控制器中执行操作的按钮

在RoR 3中,我只想要一个链接/按钮来激活控制器中的某些动作/方法。 具体来说,如果我点击页面上的“update_specs”链接,它应该转到我的产品控制器中的“update_specs”方法。 我在这个网站上找到了建议:

link_to "Update Specs", :controller => :products, :action => :update_specs 

但是,当我点击此链接时,我收到以下路由错误:

路由错误没有路由匹配{:action =>“update_specs”,:controller =>“products”}

我已经阅读了路由但我不明白为什么如果可以通过资源访问所有其他方法,我必须要路由此方法:产品。

您需要为它创建路线。

例如:

 resources :products do put :update_specs, :on => :collection end 

此外,默认情况下, link_to将在您的路线中查找GET方法。 如果要处理POSTPUT方法,则需要通过添加{:method => :post }{:method => :put }作为参数来指定它,例如:

 link_to "Update Specs", {:controller => :products, :action => :update_specs}, {:method => :put } 

或者您可以使用button_to而不是默认情况下处理POST方法的link_to