我有这段代码:
<%= 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"
任何帮助都将不胜感激。
Jesus Rodriguez 对 POST 和 GET 的看法是正确的,但如果您真的需要按钮,您可以简单地覆盖默认方法:
<%= button_to "New User", new_user_path, :class => "button", :method => :get %>
“link_to”正在寻找/users/new使用GET。
“button_to”正在使用POST寻找/users/new
如果您使用以下方法为控制器创建路由:
resources :user
默认情况下,/users/new是GET而不是POST,因此第二行找不到任何路由。
如果您正在考虑将该操作更改为POST,我认为您应该忘记它。
button_to 默认为 POST,link_to 默认为 GET,这就是 links_to 起作用的原因。您可以强制 button_to 使用 GET:
<%= button_to "New User", new_user_path, :class => "button", :method => :get %>
您可以在此处获取有关 button_to 选项的更多信息:http: //api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to
除了强制 button_to 使用非默认方法,您还可以向 link_to 发送一个类。
<%= link_to "New User", new_user_path, :class => "button" %>