请求年份字段时未在rails app中显示日期

时间:2016-06-09 13:53:35

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个名为的数据类型:

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

有什么想法吗?

4 个答案:

答案 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