如何在仅选择其中一个选项的情况下在轨道选择选项中显示一系列值?

时间:2013-04-10 22:34:04

标签: ruby-on-rails

我目前有一个看起来像这样的选择语句:

<%= f.select :assessmentYear, (Time.now.year-1..Time.now.year+1).to_a, :prompt=>true  %>

我需要它来显示选择中的范围。如,2012-2013,2013-2014等 但它仍应保存与现在相同的价值(例如,2012-2013将节省2012年,2013-2014将节省2013年等)。

这是用户的请求 - 我的申请是针对学术机构的,并且因为学年在两个日历年之间分开,所以在提到单一价值时可能会令人困惑。

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以拥有一个返回类似[['year-year+1', 'year'], ...]的数组的帮助器。类似于:

def academic_years 
  years = Array.new
  (Time.now.year-1..Time.now.year+1).each do |year|
     years << ["#{year}-#{year+1}", year]
  end
  return years
end

然后像

一样调用帮助器
<%= f.select :assessmentYear, options_for_select( academic_years ), :prompt=>true  %>

助手options_for_select将生成如下内容:

<option value="2012">2012-2013</option>
<option value="2013">2013-2014</option>
...