编写我的第一个非常简单的Rails应用程序,一个简单的管理应用程序来跟踪我们某个部门的工作。为人们生成的索引页面上有一个link_to来添加新人。我试图将其更改为button_to并且它无法说路径/ people / new不存在,但显然它确实是因为link_to转到同一个地方。
我正在使用Rails 3 / Ruby 1.9.2。我在/app/views/people/index.html.erb页面上有这个代码:
<%= link_to 'New Person', new_person_path %>
<%= button_to "New", :controller => "people", :action => "new" %>
link_to有效。 button_to失败了:
路由错误 没有路线匹配“/ people / new”
也尝试了
<%= button_to 'New Person', new_person_path %>
同样的错误。奇
答案 0 :(得分:9)
button_to
默认使用post方法。尝试将:method => :get
放在那里。这就是link_to
有效的原因。
答案 1 :(得分:3)
对此有一个很好的解释,一如既往:)
link_to
使用GET作为默认值,其中button_to
使用POST。并且没有匹配的POST路由,只有GET路由。
如果您想使用button_to,可以将:method => :get
添加到按钮参数,它将使用GET。
答案 2 :(得分:0)
答案 3 :(得分:0)
你的button_to
是否在表格内? button_to
创建了自己的表单,因此这将在表单中创建一个表单,并可能会中断路由。