プルダウンリストの作成(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 => "選択してください")