データベースから値を持ってきて表示する。
select("list", "category", Hogehoge.find_all.collect{|i| [ i.category, i.id ] }, {:include_blank => true})
Hogehogeテーブルにあるデータ全部表示することになる。
Hogehoge.find_all.collect{|i| [ i.category, i.id ] }
i.categoryが表示され、i.idがvalueになる
<select id="list_category" name="list[category]"> <option value=""></option> <option value="1">aaaa</option> <option value="2">bbbbb</option></select>
つまりvalueを表示名と同じにしたければ
Hogehoge.find_all.collect{|i| [ i.category, i.category ] }
こうすると
<select id="list_category" name="list[category]"> <option value=""></option> <option value="aaaa">aaaa</option> <option value="bbbbb">bbbbb</option></select>
こうなる。正しい使い方なのかはわからないけど…
Hogehogeテーブルはマイグレーションで設定し適当にデータ追加してある。
idは勝手に作成されるみたいなので1つだけ。
def self.up create_table :hogehoges do |t| t.column :category, :string end end
やっとできた。たぶん理解した…