5

从 Rails 3.0x 升级到 3.2.11 后,出现以下错误:

There're too many years options to be built. Are you sure you haven't mistyped something? You can provide the :max_years_allowed parameter

代码:

<%= f.date_select :to,
    :start_year => Time.now.year - 80,
    :discard_day => true,
    :include_blank => true %>

我也尝试包含一个 :max_years_allowed 参数但没有成功,我该如何解决这个问题?

4

2 回答 2

3

根据rails docs,如果未传入选项,则select_year方法date_select设置max_years_allowed为1000。然后它会查看结束年份减去起始年份的绝对值是否大于max_years_allowed选项。您是否打开过 Rails 控制台并检查Time.now.year - 80了 1000 多年前的情况?我知道这听起来很疯狂,但这是我能看到您收到该错误的唯一原因。

这是链接

于 2013-07-06T02:59:36.777 回答
1

你为什么不试试这样,它的工作原理。

<%= f.date_select :to,
    :start_year => 80.years.ago.year,
    :discard_day => true,
    :include_blank => true %>
于 2016-05-25T09:19:56.363 回答