Rails 3.2 datetime_select include_blank无法按预期工作

时间:2012-07-19 00:29:06

标签: ruby-on-rails ruby-on-rails-3.2 datetime-select

我是Rails的新手,使用的是版本3.2.6。到目前为止,我已经制作了一个包含日期时间的简单练习应用程序。在我的形式部分我有

<%= form_for(@item) do |f| %>
  [...snip irrelevant form fields...]
  <div class="field">
    <%= f.label :copyright_date, %><br />
    <%= f.datetime_select :copyright_date, { include_blank: true } %>
  </div>
<% end %>

在选项文档http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-date_select中,我认为{ include_blank: true }选项哈希的datetime_select部分允许我设置空日期。但是,如果我将任何日期字段(但不是时间字段)设置为空白选项,则整个事件将返回nil。我正在处理档案数据,有时整个日期不知道,但只有一部分。我需要能够捕获所有日期时间数据(如果存在)但将任何未知部分留空。我认为这就是include_blank的用途,但也许我误解了文档?

1 个答案:

答案 0 :(得分:0)

所有include_blank确实会在每个下拉菜单的开头添加一个空格,因此您可以选择将其留空。如果没有它,它将默认为值,并且没有选项将其留空。

要执行您所描述的操作,您可以创建一个日期时间对象,并通过它设置小时,分钟等的值,然后保存它。

http://corelib.rubyonrails.org/classes/DateTime.html#M000524