【Ruby on Rails】selectにselectedを設定。値はどこに設定したらいいの?

はまったやつ。selectにselectedを設定する箇所について。

select リファレンスでは・・・

select(オブジェクト名, プロパティ名, タグの情報 [, オプション])

オブジェクト名、プロパティ名…(゚Д゚)ハァ? こんな気分です。

select 書いてみる

select 'test', 'aaaaaaaaaa', {1=>'a',2=>'b'}

これが

 
<select name="test[aaaaaaaaaa]" id="test_aaaaaaaaaa">
 <option value="a">1</option>
 <option value="b">2</option>
</select> 

こんな感じのHTMLになる。なるほど。

  • オブジェクト名は、name=XXXXX
  • プロパティ名は、id=XXXXX

こういうことらしい。

select に selectedでデフォルト値を設定してみる

どこに設定するのよ?ということで、リファレンスを読むと後ろに追加することはなんとなく理解。

select 'test', 'aaaaaaaaaa', {1=>'a',2=>'b'}, {selected: 'a'}

こう書いてみる。

 <select name="test[aaaaaaaaaa]" id="test_aaaaaaaaaa"><option selected="selected" value="a">1</option><option value="b">2</option></select> 

selectedがついた!

selectにclassとか他の値も追加したいよね

参考までにclassとか他の値を追加したいってときに。

select 'test', 'aaaaaaaaaa', {1=>'a',2=>'b'}, {selected: 'a'},{class: 'class', 'data':'test-data'}

こんな感じでかけばOK。

selectedを設定したくない場合は、{}を空のままでOK。