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