0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Rails】フォームでのradio_buttonとselectの使い方

Posted at

【Rails】フォームでのradio_buttonとselectの使い方

Railsでのフォーム作成では、ユーザーが簡単に選択肢を入力できるようにするためにradio_buttonやselectがよく使われます。それぞれの使い方や実装例について詳しく解説します。

1. radio_buttonの使い方

radio_buttonは、複数の選択肢の中から1つだけ選択可能な入力フォームを作成するために使用します。

基本的な構文

<%= form_with model: @model do |f| %>
  <%= f.radio_button :属性名,  %>
  <%= f.label :属性名, 'ラベル名' %>
<% end %>
使用例

性別を選択するフォームを作成する場合:

<%= form_with model: @user, local: true do |f| %>
  <%= f.radio_button :gender, 'male' %>
  <%= f.label :gender_male, '男性' %>

  <%= f.radio_button :gender, 'female' %>
  <%= f.label :gender_female, '女性' %>

  <%= f.submit '送信' %>
<% end %>
f.radio_button :gender, 'male'

genderカラムに'male'の値を送信します。

f.label

選択肢の横に表示するラベルを設定します。

2. selectの使い方

selectは、ドロップダウン形式で複数の選択肢から1つを選択可能な入力フォームを作成します。

基本的な構文

<%= form_with model: @model do |f| %>
  <%= f.select :属性名, 選択肢の配列 %>
<% end %>

選択肢の配列は、[["表示名", "値"], ["表示名", "値"]]のように設定します。

使用例

都道府県を選択するフォームを作成する場合

<%= form_with model: @user, local: true do |f| %>
  <%= f.select :prefecture, [['北海道', 'hokkaido'], ['東京都', 'tokyo'], ['大阪府', 'osaka']] %>
  <%= f.submit '送信' %>
<% end %>
[['北海道', 'hokkaido'], ['東京都', 'tokyo']]

['表示名', '値']の形式で選択肢を設定します。

:prefectureカラムに選択した値が送信されます。

実装時の注意点

1.ラベルの対応

radio_buttonではlabelタグを使い、選択肢がどの値に対応しているかを明示するとユーザーにとって使いやすくなります。

2.選択肢のデータ管理

selectやradio_buttonの選択肢を直接HTMLに記述する方法もありますが、頻繁に変わるデータはモデルやヘルパーメソッドで管理すると便利です。

応用例

動的に選択肢を生成する

選択肢がデータベースに依存する場合、次のように選択肢を動的に生成できます。

selectで動的選択肢

<%= form_with model: @user, local: true do |f| %>
  <%= f.select :city, City.all.pluck(:name, :id) %>
  <%= f.submit '送信' %>
<% end %>
•	City.all.pluck(:name, :id)

データベースから都市名とIDを取得して選択肢を生成します。

radio_buttonで動的選択肢

<%= form_with model: @user, local: true do |f| %>
  <% City.all.each do |city| %>
    <%= f.radio_button :city_id, city.id %>
    <%= f.label "city_#{city.id}", city.name %>
  <% end %>
  <%= f.submit '送信' %>
<% end %>
•	City.all.each

都市ごとにラジオボタンを作成します。

まとめ

•radio_button: 複数の選択肢から1つだけ選ぶ際に使用。
•select: ドロップダウン形式で1つの選択肢を選ぶ際に使用。
•選択肢が動的に変わる場合は、データベースやヘルパーメソッドを活用して効率的に管理するのがポイント。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?