プルダウンリストの作成(select)
いつも忘れて調べているのでメモ。
基本
- select
select(:user, :sex, User.sex_choices)
第3引数には、プルダウンリストに表示される値と、その値に関連付けられた属性値を配列の形で示す。これは、ビューに直接書くよりはモデルかヘルパーに出しておいたほうがいいと思うので、以下のように実装。
- user.rb
class User < ActiveRecord::Base def self.sex_choices [["男性",0], ["女性",1]] end end
これで、次のようなプルダウンリストができます。
オプション
- disabled等のhtml_optionの指定。
この場合、第4引数が空になる。
select(:user, :sex , User.sex_choices, {}, :disabled => true)
- 初期値の指定
select(:user, :sex, User.sex_choices, :sex => 1)
他にも、「選択してください」などを初期の表示にする場合は、promptを使う。
select(:user, :sex, User.sex_choices, :prompt => "選択してください")