とーますメモ

Ruby on Rails / Goなどの学習メモ

【Rails】select_tag使用時にデフォルト値を設定する方法

ググってもさっくり結果が出なかったので自分用のメモ。

select - リファレンス - - Railsドキュメント

上記の公式ページを見ると、
optionsの設定には、「options_for_select」を使用しているが
:selectedを指定している例がなかったので調べたら、
やっぱり「options_for_select」でそういう設定ができた。

<%= select_tag 'prefecture', options_for_select(prefecture_options, :selected => selected_prefecture), :style => 'width: 200px', :class => 'selectbox_shipping_code' %>

上記のように、options_for_selectの第二引数に、「:selected」を設定するだけで良い。

またselectとプラグインの「select2」を併せて使用したいときなどは
multiple属性を設定したい時があるがそのようなときは以下のような設定でいける。

<%=select_tag 'stores[]', options_for_select(
@stores.map {|s| [s.store_name, s.store_id]}, 
@user.stores.pluck(:id)
), :multiple => true>