Ben*_*ris 8 ruby datetime ruby-on-rails
我有一个birth_date字段,存储为日期时间值.默认的rails形式帮助者吐出一种不太友好的格式,例如"2008-06-10 22:33:19.000000".以下是香草铁路的方式.
<div class="field">
<%= f.label :birth_date %>
<%= f.text_field :birth_date, :size=>"20" %>
</div>
Run Code Online (Sandbox Code Playgroud)
我怎样才能简单地应用格式?我试过各种方法,例如strftime应该可行,我想.但是当我尝试以下操作时,我收到了一个错误undefined method 'strftime' for nil:NilClass
<div class="field">
<%= f.label :birth_date %>
<%= f.text_field :birth_date, :value=>f.object.birth_date.strftime('%m/%d/%Y'), :size=>"20" %>
</div>
Run Code Online (Sandbox Code Playgroud)
基于其他一些问题/答案,我尝试了以下内容.它适用于非空值,但它是丑陋的代码,并且它不适用于空值(实际上它显示今天的日期).
<div class="field">
<%= f.label :birth_date %>
<%= f.text_field :birth_date, :value=> Time.parse(f.object.birth_date.to_s).strftime('%m/%d/%Y'), :size=>"20" %>
</div>
Run Code Online (Sandbox Code Playgroud)
在游戏中,似乎输出f.object.birth_date被视为日期,而不是日期时间.但是,当在text_field(原始,丑陋的格式)中显示时,它包含时间.星期五下午,我对铁轨形式和红宝石日期/时间对象的熟悉程度让我觉得很愚蠢.
任何简单的方法来让我的表单显示空/空白,否则一个友好的日期?
Cla*_*law 10
如果你想有一个空字符串,如果birth_date是空的,你应该简单地检查birth_date是不可nil事先:
<%= f.text_field :birth_date, :value => (f.object.birth_date.strftime('%m/%d/%Y') if f.object.birth_date), :size => "20" %>
Run Code Online (Sandbox Code Playgroud)
这样,当birth_date是nil,:value被设置为nil.
| 归档时间: |
|
| 查看次数: |
7220 次 |
| 最近记录: |