私が理解していることからlink_to
、 get メソッドにbutton_to
使用され、 post メソッドに使用されます。
一方、HTML5 のセマンティクスで<button>
は、 はあらゆるタイプのクリック可能なボタンに使用されるとのことでした。ユーザーをフォームに送信して入力するクリック可能なボタンがある場合、またはを作成するbutton_to
必要がありlink_to
ますか?
私が理解していることからlink_to
、 get メソッドにbutton_to
使用され、 post メソッドに使用されます。
一方、HTML5 のセマンティクスで<button>
は、 はあらゆるタイプのクリック可能なボタンに使用されるとのことでした。ユーザーをフォームに送信して入力するクリック可能なボタンがある場合、またはを作成するbutton_to
必要がありlink_to
ますか?
あなたが考えるのは簡単です。そのメソッドは Rails ヘルパーであり、haml とは何の関係もありません。はい、1 つのメソッドは get メソッド用で、別のメソッドは post メソッド用です。コントローラーにデータを送信する必要がある場合は、使用しますbutton_to
(たとえば、レコードを削除する場合)。そうでなければ、link_to
十分です。
さらに、パラメータlink_to
を使用して投稿データを作成できます。:method
= link_to "Something", some_path, :method => :post
質問に答えるには、 を使用しますlink_to
。
記事などのリソースにユーザーを誘導するには、リンクを使用する必要があります。
ただし、ボタンを使用してアクションを指す傾向があります (編集ページの「作成」/「送信」など)。これがあなたのインターフェイスに合わない場合 -- リンクのようにスタイルを設定してください。
理由は次のとおりです。ユーザーが JavaScript をサポートしていない場合、ユーザーに GET 以外のアクションを指示することはできません。link_to
したがって、この場合、送信/破棄アクションをトリガーする唯一のオプションはボタンです。
あなたの場合のように、リンクが最終的にリソースの変更につながるページ (フォームを表示する編集/作成ページへのリンク/ボタン) を指している場合は、両方のアプローチを自由に使用してください。
単純にユーザーをどこかに送りたい場合は get リクエストです。したがって、この場合は link_to を使用する必要があります。ちなみに、:method を指定すれば、post リクエストやその他のリクエスト (button_to も同様) に link_to を使用できます。例えば:=link_to "some path", some_path, :method => :get