在我看来,我这样做:
<td><%= client.last_contact.to_date %></td>
输出这个:
2011-08-11
但是当我在控制台中执行此操作时,我会得到我想要的格式:
1.9.3p194 :093 > c.last_contact
=> Thu, 11 Aug 2011 00:00:00 UTC +00:00
1.9.3p194 :094 > c.last_contact.to_date
=> Thu, 11 Aug 2011
在我看来,我希望它显示日期及其在控制台中的格式。
我如何实现这一目标?
感谢。
答案 0 :(得分:6)
在rails视图中显示时间/日期的最佳方法是使用I18n本地化功能。
您可以在yaml文件的config/locales
目录中设置日期时间格式。像这样的东西
# config/locales/datetime.en.yml
en:
time:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
default: "%d.%m.%Y"
short: "%d %b"
long: "%d %B %Y"
date: "%a, %d %b %Y"
然后在您的观看中使用l
帮助
<%= l client.last_contact, :format => :date %>
答案 1 :(得分:5)
控制台在值上调用inspect
,而erb标记在其值上调用to_s
。
虽然您可以在视图中致电inspect
,但我建议您使用strftime
来准确定义您想要的内容
Date::today.strftime('%a, %d %b %Y')`
或使用I18n.localize
帮助器(别名为l
),它允许您定义格式并重复使用
I18n.localize Date::today, :format => :long