2012-07-24 101 views
0

嗨,我是红宝石轨道上的新手......我在我的下拉列表中遇到问题..必须显示比本周前进3周..例如第39周..它应该是wekk。 42但本周应自动选择...第39周..这是我的代码..dropdownlist日期/星期

<%= 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)) %> 

在此先感谢。

回答

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}) %> 
0

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

相关问题