Railでのフォームの作り方

こんにちは!

今回はRailsでのフォームの作り方についてまとめます。

HTMLでのフォームの作り方→Railsでのフォームの作り方の順となっています。

環境

HTMLでのフォームの作り方

formタグ

  • <form> ~ </form>でフォーム全体を囲む
    • action属性でデータの送信先を指定
    • method属性でデータの送信方法を指定

inputタグ

  • <input>を単独で使用する。開始・終了タグはない
    • type属性で入力欄の種類を指定する
    • name属性で入力欄の名前を指定する
    • value属性でプログラムに送信するデータを指定する
      • type="text"などの場合はユーザーの入力値が送信されるので設定不要

type属性に指定できる値

種類
radio ラジオボタン
checkbox チェックボックス
text 1行の入力欄
email メールアドレス入力欄
url URL入力欄
submit 送信ボタン

selectタグ

  • <select>で全体を囲み、<option>で各項目を囲む
    • name属性は<select>に指定する
    • value属性は<option>に指定する

Railsでのフォームの作り方

form_tagメソッド

  • formタグを生成する
    • 第一引数でアクションへのパスを受け取る
    • 第二引数でオプションのハッシュを受け取る
      • オプションのハッシュでは、データの送信方法(get, post)や、HTMLオプション(クラス指定)を受け取る

コード例

<%= form_tag("/search", method: "get") do %>
  # フォームの内容を入力
<% end %>

text_field_tagメソッド

  • <input type="text">のタグを生成する
    • 第一引数でname属性を指定する
      • この時に指定した値がparams[名前]で取り出せる

コード例

text_field_tag(:query)
# 値の取り出し
params[:query]

select_tagメソッド

  • selectタグを生成する
    • 第一引数でname属性を指定する
    • 第二引数でオプションの文字列をoptions_for_selectヘルパーを用いて指定する

コード例

options = options_for_select([
         ['りんご', 1],['ばなな', 2]
         ])
select_tag(:fruit_id, options)

Railsのメソッドの種類

  • 他にもcheck_box_tagなど、_tagの形式で様々なメソッドが存在する
  • それぞれが一つのinputタグを生成する

おわりに

苦手だったフォームについて少し学習が進んだのでまとめました。HTMLのフォームの作り方と属性についての復習をすることで、Railsのメソッドとの関係が理解できるようになりました。RailsはHTMLの理解が不可欠ですね。

44/100