私はこのコードを持っています:
<%= 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" に一致するルートはありません
どんな助けでも大歓迎です。
イエス・ロドリゲスは POST と GET については正しいですが、本当にボタンが必要な場合は、デフォルトのメソッドを単純にオーバーライドできます。
<%= button_to "New User", new_user_path, :class => "button", :method => :get %>
「link_to」はGETを使用して/users/newを探しています。
「button_to」は、 POSTを使用して/users/newを探しています
以下を使用してコントローラーのルートを作成する場合:
resources :user
デフォルトでは、/users/newはPOSTではなくGETであるため、2 行目ではルートが見つかりません。
そのアクションを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" %>