Ruby on Rails中的Button_to路线不好

时间:2011-01-16 22:55:50

标签: ruby-on-rails ruby button link-to

我正在尝试使用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有一些我不知道的特征,但我很遗憾。

2 个答案:

答案 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 %>