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

我用 JQuery 解决了这样的问题。Datepicker 插件可以满足您的所有需求。

于 2012-07-24T12:50:58.943 回答
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 回答