1.基本的なフォームを作成する
最も基本的なフォームヘルパはform_tagです。
<%= form_tag do %>
Form contents
<% end %>
form_tagは、上のように引数なしで呼び出されると
タグを生成します。このフォームを現在のページに送信するときにはHTTPのPOSTメソッドが使われます。たとえば現在のページが/home/indexの場合、以下のようなHTMLが生成されます (読みやすくするため改行を追加してあります)。<form accept-charset="UTF-8" action="/home/index" method="post">
<div style="margin:0;padding:0">
<input name="utf8" type="hidden" value="✓" />
<input name="authenticity_token" type="hidden" value="f755bb0ed134b76c432144748a6d4b7a7ddf2b71" />
</div>
Form contents
</form>
また、Webでよく使われている一般的な検索フォームには以下のものが含まれています。
・GETメソッドを送信するためのフォーム要素
・入力するものを示すラベル
・テキスト入力要素
・「送信」ボタン要素
検索フォームの作成には、form_tag、label_tag、text_field_tag、submit_tagを使います。
<%= form_tag("/search", method: "get") do %>
<%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>
上のコードから以下のHTMLが生成されます。
<form accept-charset="UTF-8" action="/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div>
<label for="q">Search for:</label>
<input id="q" name="q" type="text" />
<input name="commit" type="submit" value="Search" />
</form>
2.モデルオブジェクトを扱う
モデルオブジェクトヘルパー
フォームの主な仕事といえば、モデルオブジェクトの作成および修正です。*_tagヘルパーをモデルオブジェクトの作成/修正に用いることはもちろん可能ですが、1つ1つのタグについて正しいパラメータが使われているか、入力のデフォルト値は適切に設定されているかなどをいちいちコーディングするのは何とも面倒です。Railsにはまさにこのような作業を軽減するのにうってつけのヘルパーがあります。なお、これらのヘルパー名には_tagが付いていません (text_field、text_areaなど)
これらのヘルパーの最初の引数はインスタンス変数名、2番目の引数はオブジェクトを呼び出すためのメソッド名 (通常は属性名を使います)です。Railsは、オブジェクトのそのメソッドから値が返され、かつ適切な入力名が設定されるように、入力コントロールの値を設定してくれます。たとえば、コントローラで@personが定義されており、その人物の名前がHenryだとします。
<%= text_field(:person, :name) %>
このとき、上のコードからは以下の出力が得られます。
<input id="person_name" name="person[name]" type="text" value="Henry"/>
参照:Railsガイドhttps://railsguides.jp/form_helpers.html