2012-07-19 102 views
0

我是Rails的新手,正在使用版本3.2.6。到目前为止,我已经制作了一个包含日期时间的简单实践应用程序。在我的表单部分我有Rails 3.2 datetime_select include_blank不按预期工作

<%= 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我的印象是,datetime_select选项散列的{ include_blank: true }部分将允许我设置为空日期。但是,如果我有任何日期字段(但不是时间字段)设置为空白选项,整个事情返回nil。我正在处理档案数据,有时整个日期不知道,但只有一部分。我需要能够捕获所有的日期时间数据,如果它存在但留下任何未知的部分空白。我认为这是include_blank的目的,但也许我误解了文档?

回答

0

所有include_blank都会在每个下拉菜单的开头放置一个空白区域,以便您可以将其留空。没有它,它只会默认值,并且将不会有空白。

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

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

+0

啊,谢谢你的解释。我最终创建了自己的'FuzzyDate'模型来处理这些日期未知的部分。 – user1002119 2012-07-20 17:38:07