1. ホーム
  2. ruby-on-rails

[解決済み] Rails の link_to をポストするリンクに使用する

2023-01-19 20:05:02

質問

投稿リクエストを送信する必要があるリンクがあります。通常、私はjQueryを使用して、リンクのデフォルト動作を阻止し、その後、宛先にフォームを送信します。これは、Railsが私を助けてくれるはずのもののように思えます。案の定 link_to メソッドには、POST httpメソッドを指定するオプションがあります。

link_to "Profile", 'http://example.com/profile', method: :post

それは動作しますが、私はあまりにも2つのパラメータを追加する必要があります。私は試してみました。

link_to "Profile", 'http://example.com/profile', method: post, param1: 'value1', param2: 'value2'

これは、これらのパラメータを <a> 要素に追加しただけで、リンクをクリックしたときにそれらのパラメータを送信しませんでした。

<a rel="nofollow" param1="value1" param2="value2" data-method="post" href="http://example.com/profile">Profile</a>

を使ってパラメータ付きのPOSTリクエストを行う方法はありますか? link_to または他のRailsメソッドを使用してパラメータ付きのPOSTリクエストを行う方法はありますか?私はRails 3.2.9を使用しています。

どのように解決するのですか?

簡単に言うと、もしあなたが「パラメータ」という意味で使っているのがフォームフィールドなら、この方法は使えないということです(少なくとも、私が見た限りでは、簡単な方法ではありません)。代わりに、リンクのように見えるようにスタイルされた送信ボタン付きのフォームを使用する必要があります (そのように見せたいのであれば)。

一方、あなたが クエリ パラメータを意味するのであれば、これはうまくいくでしょう。

link_to "Profile", profile_path(@profile.id, param1: 'value1', param2: 'value2'), method: :post