selectタグの使い方

雑雑草々

  1. controller

@places = Place.find(:all)

  1. view

<%= f.select :place, @places.collect{|p| [p.name, p.id ]} %>
p.nameがselectで表示される文字列で、p.idがvalueに入ります。

会社の同僚の人が悩んでたみたいなので書いてみる。


select(method, choices, options = {}, html_options = {} )なので
choicesの中にハッシュで渡してあげれば良いので

<%= f.select :place, [["name1", 1],["name2", 2]] %>

とかでも良かったりします。
後、上のplacesから選択させる目的だと

<%= f.select :place, Place.find(:all).collect{|p| [p.name, p.id]} %>

でも良いしね。


ちなみに逆にしても特にエラーにはならず、idを選んでnameをパラメータとして送る
困ったちゃんになるとゆー。