我有一个名为的数据类型:
t.date :finishdate
我有一个选择字段:
<%= f.select :finishdate, (Time.zone.now.year - 10)..(Time.zone.now.year) + 5,{}, class: "form-control" %>
但我似乎无法展示这一年?目前我正在使用:
<%= w.finishdate %>
但没有任何显示,我也尝试过:
<%= w.finishdate.year %>
然后得到错误
undefined method `year' for nil:NilClass
有什么想法吗?
答案 0 :(得分:0)
试试这个
<%= w.finishdate.strftime('%Y') if w.finishdate.present? %>
答案 1 :(得分:0)
这将始终设置为finishdate
。因为,这将始终是后退
2.0.0-p0 :006 > (Time.zone.now.year - 10)..(Time.zone.now.year + 5)
=> 2006..2021
如果您尝试在finishdate
字段中保存2006年或其他年份。您将获得nil
,因为您的字段类型为date
而不是string
希望这会对你有所帮助。
答案 2 :(得分:0)
在使用文本字段后,我使用它来使用它:
<div class="form-group">
<label for="usr">Completed in:</label>
<%= f.date_select :finishdate , { discard_day: true, discard_month: true }, { :class => 'form-control' } %><br/>
</div>
答案 3 :(得分:-1)
balance tags