🐈

form_withで使える主なフォームヘルパーまとめ(Rails 8.0)

に公開

はじめに

Railsガイド(Version:8.0)で紹介されているフォーム要素の生成用のヘルパーをまとめてみました。
下記で紹介しているコードは全てRailsガイド(Version:8.0)より引用しております。

チェックボックス

<%= form.checkbox :biography %>
<%= form.label :biography, "Biography" %>
<%= form.checkbox :romance %>
<%= form.label :romance, "Romance" %>
<%= form.checkbox :mystery %>
<%= form.label :mystery, "Mystery" %>

チェックボックススクリーンショット

チェックしたものはparams[:フィールド名]に"1"が送信されます。

{
  "biography" => "1",
  "romance" => "0",
  "mystery" => "0"
}

ラジオボタン

<%= form.radio_button :flavor, "chocolate_chip" %>
<%= form.label :flavor_chocolate_chip, "Chocolate Chip" %>
<%= form.radio_button :flavor, "vanilla" %>
<%= form.label :flavor_vanilla, "Vanilla" %>
<%= form.radio_button :flavor, "hazelnut" %>
<%= form.label :flavor_hazelnut, "Hazelnut" %>

ラジオボタンスクリーンショット

同じキー(上記では:flavor)でラジオボタンを複数作った場合、どれか一つのみが選択できます。
params[:flavor] = "Hazelnut"となります。

日付・時刻関連

<%= form.date_field :born_on %>
<%= form.time_field :started_at %>
<%= form.datetime_local_field :graduation_day %>
<%= form.month_field :birthday_month %>
<%= form.week_field :birthday_week %>

日付・時刻関連スクリーンショット

テキスト関連

テキスト(1行)

<%= form.text_field :name%>

1行のテキスト入力欄が作成されます
テキストスクリーンショット

テキスト(複数行)

<%= form.text_area :message, size: "70x5" %>

複数行のテキストエリアが作成されます。
size:で行数と列数の指定ができます
テキストエリアスクリーンショット

パスワード

<%= form.password_field :password %>

入力内容が見えないように隠されます
パスワードスクリーンショット

メールアドレス

<%= form.email_field :address %>

メール形式で入力されているかどうかのバリデーションチェックが自動で行われます。
メールアドレススクリーンショット

電話番号

<%= form.telephone_field :phone %>

スマホで開いた時に、数字入力に最適化されたキーボードが表示されます。
電話番号スクリーンショット

URL

<%= form.url_field :homepage %>

WebサイトなどのURLの入力に適しています。
ブラウザによっては入力がURL形式かどうかのチェックが行われることがあります。
URLスクリーンショット

検索欄

<%= form.search_field :form_helpers %>

小さめの検索欄です。サイト内検索やキーワード入力用の検索フォームに適しています。クリアボタンがあります。
検索欄スクリーンショット

非表示

<%= form.hidden_field :parent_id, value: "foo" %>

画面に表示されません。
ユーザーには見せたくないけど、特定の値をサーバーに送信したい時などに使われます。

数値・色関連

数値入力

<%= form.number_field :price, in: 1.0..20.0, step: 0.5 %>

最小値・最大値・刻み幅を指定可能です。
数値入力スクリーンショット

スライダー

<span>1</span><%= form.range_field :discount, in: 1..100 %><span>100</span>

数値がスライドで入力できます。
スライダースクリーンショット

色選択

<%= form.color_field :favorite_color %>

カラーピッカーが表示されます。

カラーピッカースクリーンショット1
↓クリックすると色を選択できる
カラーピッカースクリーンショット2

参考

https://guides.rubyonrails.org/form_helpers.html

Discussion