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_tofunction,但我迷路了。

我想你可能会误用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 %>