在 Rails 5 中使用 :d ate 数据类型时,如何扩展下拉菜单中可用的年份范围?



我正在使用Ruby on Rails 5编写个人家谱应用程序,并使用:d ate数据类型输入出生/死亡日期。这将为日期的每个元素(年/月/日(生成一个下拉菜单。对于年份,菜单默认为过去五年到未来五年的范围(因此对于 2017 年,范围是从 2012 年到 2022 年(。但我需要一个更大的范围来涵盖几个世纪前的年份。如何在下拉菜单中定义我希望可用的特定年份范围?

以下是我的 schema.rb 文件的摘录(为简洁起见,删除了其他字段(:

create_table "people", force: :cascade do |t|
t.date "birth_date"
t.date "death_date"
end

这是我的视图文件的摘录(再次,为简洁起见,删除了其他字段(:

<div class="booyah-box col-10 offset-1">
<h1>Edit Your Person Details</h1>
<%= simple_form_for @person do |f| %>
<%= f.input :birth_date %>
<%= f.input :death_date %>
<%= f.submit 'Update', class: 'btn btn-primary' %>
<% end %>
</div>

我还应该补充一点,我需要一种方法来有一个"别无选择"类型的选项,例如对于那些仍然活着的人,因为他们不会有死亡日期。

我已经在StackOverflow上搜索了,但没有找到适用的答案,但如果这里已经有一个,请指出我。提前感谢您的帮助。

您可以在视图中指定日期input中的start_yearend_year;例如:

<div class="booyah-box col-10 offset-1">
<h1>Edit Your Person Details</h1>
<%= simple_form_for @person do |f| %>
<%= f.input :birth_date, start_year: Time.now.year - 10, end_year: Time.now.year + 10 %>
<%= f.input :death_date, start_year: Time.now.year - 10, end_year: Time.now.year + 10, prompt: "-" %>
<%= f.submit 'Update', class: 'btn btn-primary' %>
<% end %>
</div>

在示例中,我添加了当前日期后的 10 年和当前日期后的 10 年,但您可以使用所需的任何范围。

最新更新