0

こんにちは、Ruby on Rails の初心者です...ドロップダウン リストに問題があります.現在の週よりも 3 週間前に表示する必要があります..たとえば、39 週目..それは wekk である必要があります。42しかし、現在の週が自動的に選択されるはずです...週39..これが私のコードです..

<%= select_tag("stock_movement", options_for_select(StockMovement.order("year DESC, week DESC").limit(20).map { | val | [ "#{ val.year }/#{ val.week }", val.id] }, :selected => @stock_movement)) %>

前もって感謝します。

4

2 に答える 2

0

このようなことを試してください:

<% 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}) %>
于 2012-07-24T09:38:02.103 に答える
0

このようなことをJQueryで解決します。Datepicker プラグインで必要なすべてを実行できます。

于 2012-07-24T12:50:58.943 に答える