このようなことを試してください:
<% cweek = Date.today.cweek
sms =StockMovement.where(week: (cweek..cweek+3)).order("year DESC, week DESC")
sms_now = sms.last.id
%>
<%= select_tag("stock_movement", options_for_select(sms.map { | val | [ "#{ val.year }/#{ val.week }", val.id] }, :selected => sms_now)) %>
- 次に、オプションの初期化をコントローラーに移動することを検討してください。
もう少しいじると、 form.select ヘルパーを使用し、存在する場合は参照 (私の場合はセミナー) を保持するモデルの値を事前選択し、それ以外の場合は現在の週を事前に選択する別のソリューションを次に示します。
<% cweek = Date.today.cweek
sms =StockMovement.where(week: (cweek..cweek+3)).order("year DESC, week DESC")
sms_selected = @seminar.stock_movement ? @seminar.stock_movement.id : StockMovement.where(week: cweek).first.id
%>
<%= f.select("stock_movement_id", sms.map { | val | [ "#{ val.year }/#{ val.week }", val.id] },{:selected => sms_selected}) %>