jer*_*ith 22 datetime ruby-on-rails
有没有一种简单的方法来格式化DateTime
Rails视图中的值的显示?
例如,如果我做的事情如下:
<%= text_field :my_object, :start_date %>
Run Code Online (Sandbox Code Playgroud)
并且只想显示日期部分:start_date
(即我想隐藏时间部分),有没有办法格式化:start_date
视图内部的字符串,以便它可以用于创建新my_object
项目和更新新my_object
项目?
只是澄清一下:
干
<%= text_field
:my_object,
:start_date,
:value => @my_object.start_date.strftime('%m/%d/%Y') %>
Run Code Online (Sandbox Code Playgroud)
当对象已经存在时(即在项目更新时)工作得非常漂亮,但是,在创建新项目时,由于start_date最初将为nil,因此视图将引发错误
while evaluating nil.strftime
Run Code Online (Sandbox Code Playgroud)
Dav*_*pin 35
这里有一些很棒的建议,但是在那些你确实想要将文本字段日期格式化为特定方式的情况下(比如说你正在使用javascript日期选择器进行集成),并且你正在处理nils,我想只是做一个小调整你现有的方法可以做到这一点:
:value => (@object.start_date.blank? ? '' : @object.start_date.strftime('%m/%d/%Y'))
Run Code Online (Sandbox Code Playgroud)
我可以想到三种方式:
1)在模型上创建一个新方法,可以格式化您的日期,但是您需要它
2)创建一个可以执行相同操作的辅助方法
3)你有没有尝试过:
<%= text_field
:my_object,
:start_date,
:value => @my_object.try(:start_date).try(:strftime,'%m/%d/%Y') %>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24739 次 |
最近记录: |