Ruby on rails &引用;没有与[POST]匹配的路线”;将链接更改为按钮时

Ruby on rails &引用;没有与[POST]匹配的路线”;将链接更改为按钮时,ruby-on-rails,button,hyperlink,Ruby On Rails,Button,Hyperlink,我有一段代码: <%= link_to "New User", new_user_path, :class => "button" %><br /> “按钮”%> 这很好,但当我把它改成 <%= button_to "New User", new_user_path, :class => "button" %><br /> “按钮”%> 我得到这个错误 没有与[POST]“/users/new”匹配的路由 如果您有任何帮助,

我有一段代码:

<%= link_to "New User", new_user_path, :class => "button"  %><br />
“按钮”%>
这很好,但当我把它改成

<%= button_to "New User", new_user_path, :class => "button"  %><br />
“按钮”%>
我得到这个错误

没有与[POST]“/users/new”匹配的路由

如果您有任何帮助,我们将不胜感激。

此“链接”正在使用GET查找/users/new

“按钮”正在使用POST

如果使用以下方法为控制器创建路由:

resources :user
默认情况下,/users/new是GET而不是POST,因此第二行找不到任何路由


如果您想将该操作更改为POST,我认为您应该忘记它

按钮默认为POST,链接默认为GET,这就是链接有效的原因。您可以强制按钮_使用GET:

<%= button_to "New User", new_user_path, :class => "button", :method => :get %>
“按钮”,:方法=>:获取%>

您可以在此处获得有关按钮选项的更多信息:

Jesus Rodriguez关于POST和get的观点是正确的,但是如果您确实需要按钮,您可以简单地覆盖默认方法:

<%= button_to "New User", new_user_path, :class => "button", :method => :get  %>
“按钮”,:方法=>:获取%>

您也可以发送一个类来链接,而不是强制按钮使用非默认方法

<%= link_to "New User", new_user_path, :class => "button" %>
“按钮”%>

若要添加,您可以向其添加类,使其“看起来”像一个按钮(如上面的答案所示)。在我的例子中,我正在使用引导,并执行了以下
“btn btn default”%>