6

button_toレールヘルパーを使おうとしています。私は次のコードを書きました:

<%= button_to 'Edit Item', edit_item_path(@item), :class => 'mark-button' %>

次のエラーメッセージが表示されます

No route matches "/items/1/edit"

しかし、ページを更新すると、適切なアクションに進みます。取得したページのURLlocalhost:3000/items/1/editは、正しいURLです。button_toコマンドをlink_toエラーなしでロードされたページに切り替えた場合。このコードの意味:

<%= link_to 'Edit Item', edit_item_path(@item), :class => 'mark-button' %>

正常にロードされます。button_to気づいていない機能があるかもしれませんが、迷っています。

4

3 に答える 3

5

button_toを誤用しているのではないかと思います。編集アクションにリンクする場合は、link_toを使用する必要があると常に考えていました。ボタンは、フォームの更新やレコードの削除など、データを投稿/配置する必要があるアクション用のようです。

アップデート:

デフォルトでは、button_toはGETではなくPOSTを使用します。したがって、URLにアクセスするだけで機能します(つまり、GET)。

于 2011-01-16T23:21:39.770 に答える
2

button_toのデフォルトはPOSTで、link_toのデフォルトはGETです。

button_toが本当に必要な場合は、デフォルトのメソッドを編集およびその他のリンク用にGETに変更できます。

例:

<%= button_to 'Edit', edit_user_path(@user), :method => :get %>
于 2014-01-07T06:04:06.680 に答える
-2

Ruby -v 2.8.6、Rails 6.1.4.1

<%= button_to'編集'、edit_item_path(item)、:method =>:get%>式(@item)では、編集するオブジェクトを定義しないため、(@ item)は特定のオブジェクトではないため、 、いくつかあり、編集したいものだけを定義する必要があります。:method =>:getこのメソッドは完璧です

于 2021-11-13T22:46:30.513 に答える