よく書き方がわからなくて困るのでメモ的に。
あまりバージョンとか関係ないと思いますが一応。
- Rails4.1.4
- Ruby2.1.4p265
- slim-ralis(2.1.5)
--
要件としては
- classを使いたい
- promptで初期値を用意したい
- selectedも用意したい
下記でいけます。
= f.select :number_of_people, options_for_select((1..20).map{|n| ["#{n}人", n]}, selected: @hoge.try(:number_of_people)), {prompt: t('placeholder.number_of_people')}, {class: 'form-control'}
<select class="form-control" id="number_of_people" name="number_of_people">
<option value="">何人で?▼</option>
<option value="1">1人</option>
<option value="2">2人</option>
.
.
<option value="7">7人</option>
<option value="8">8人</option>
<option value="9">9人</option>
<option selected="selected" value="10">10人</option>
<option value="11">11人</option>
.
.
<option value="20">20人</option></select>
という感じです。
slimの方を簡単に解説すると重要な点は
- 第2引数にoptions_for_selectを書く。その中にselectedも用意
- 第3引数にpromptを書く
- 第4引数にclassを書く
以上です。