我正在使用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_year
和end_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 年,但您可以使用所需的任何范围。