在 RoR 3 中,我只想有一个链接/按钮来激活控制器中的某些操作/方法。具体来说,如果我单击页面上的“update_specs”链接,它应该转到我的产品控制器中的“update_specs”方法。我在此网站上找到了执行此操作的建议:
link_to "Update Specs", :controller => :products, :action => :update_specs
但是,当我单击此链接时,出现以下路由错误:
路由错误 没有路由匹配 {:action=>"update_specs",
:控制器=>“产品”}
我已经阅读了有关路由的内容,但我不明白如果所有其他方法都可以通过资源:产品访问,为什么我必须路由此方法。
您需要为其创建一条路线。
例如:
resources :products do
put :update_specs, :on => :collection
end
也是默认的link_to
会寻找一个GET
方法在你的路线中。如果你想处理一个POST
or PUT
您需要通过添加来指定它的方法{:method => :post }
or {:method => :put }
作为参数,例如:
link_to "Update Specs", {:controller => :products, :action => :update_specs}, {:method => :put }
或者你可以使用button_to
代替link_to
它处理POST
默认方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)