我正在尝试使用button_to
rails helper。我写了以下代码:
<%= button_to 'Edit Item', edit_item_path(@item), :class => 'mark-button' %>
并收到以下错误消息
No route matches "/items/1/edit"
但是当我刷新页面时,它会转到相应的操作。我得到的网页的网址是localhost:3000/items/1/edit
,这是正确的网址。如果我将button_to
命令切换到link_to
加载的页面没有错误。意思是这段代码:
<%= link_to 'Edit Item', edit_item_path(@item), :class => 'mark-button' %>
加载很好。也许button_to
有一些我不知道的特征,但我很遗憾。
答案 0 :(得分:5)
我想你可能会误用button_to。我一直认为,如果你要链接到编辑动作,你应该使用link_to。按钮似乎适用于需要发布/放置数据的操作,例如更新表单或删除记录。
更新
默认情况下,button_to使用POST而不是GET。因此,当您访问URL(即GET)时它会起作用。
答案 1 :(得分:2)
button_to默认为POST,link_to默认为GET。
如果您确实需要button_to,可以将默认方法更改为GET以进行编辑和其他链接。
代表:
<%= button_to 'Edit', edit_user_path(@user), :method => :get %>