目次

Railsでフォームを作るときに使う『form_for』と『form_tag』の違い

Railsで入力フォームを作るには、2つの方法があります。「form_tag」と「form_for」です。

form_forとform_tagの違い

form_tag」と「form_for」どちらを使うべきかは、基本的にモデルの有無で判断します。入力フォームで入力するデータのモデルがあれば「form_for」を使い、入力するデータが特にモデルを持っていなければ「form_tag」を使います。

  1. form_for: モデルがあるデータを扱うときに使う。(記事投稿フォームなど)
  2. form_tag: モデルがないデータを扱うときに使う。(検索フォームなど)

form_for

モデルへデータを追加したり、変更したりするためのフォーム。scaffoldを使って実装すると、ビューファイルのデータ追加画面や編集画面でform_forを使っているのがわかります。

form_forの使い方
<% form_for(モデル名) do |f| %><% end %>

form_for内で使えるメソッド