ラジオボタンの作り方
前置き
今回はラジオボタンの作り方ですね。
恒例の自分用メモシリーズです。
ヘルパーメソッドを用いた場合にlabelとinputを対応させる方法がわかりにくかったので残しておきます。
コード
<% @users.each do |user| %>
<%= f.radio_button :user_id, user.id %>
<%= f.label :user_id, user.name, { value: user.id} %>
<% end %>
# f.radion_buttonについて
- 第一引数はデータを保存するフィールド名。今回であれば、フォームで指定しているモデルのuser_idカラムに保存されます。
- 第二引数はコントローラに送信する値ですね。
# f.labelについて
- 第一引数は、radion_buttonと同じくフィールド名ですね。同一のフィールド名を指定しているボタンが一つしかなければ、これだけでlabelとradio_buttonが紐づきます。
- 第二引数はlabelに表示する文字列ですね。今回はユーザー名を表示しています。
- 第3引数はHTMLオプションです。今回はvalue属性を指定していますね。
同じフィールド名を指定しているradio_buttonが複数ある場合は、どのボタンと対応させるかをvalue属性の値を指定することで明示します。
補足
radio_buttonはcollection_check_boxesやcollection_selectとは異なり配列の数だけ選択肢を自動展開するメソッドは用意されていないみたいです。
なので、上記の様にeachメソッドと併用するしかなさそうですね。