1

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

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

这是用户的请求——我的申请是针对学术机构的,并且由于学年分为两个日历年,因此在引用单个值时可能会造成混淆。

非常感谢!

4

1 回答 1

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>
...
于 2013-04-10T22:57:13.783 回答