我刚刚开始学习Rails,我在尝试格式化时间方面遇到了麻烦。我有一个具有许多联系人日志的Ticket模型,我想在视图中格式化created_at时间戳。当我使用这段代码时:
<% @contacts.each do |contact| %>
<p><%= contact.created_at.strftime("%B %e, %Y") %></p>
<p><%= contact.author %></p>
<p><%= contact.description %><p>
<% end %>
打印出与故障单关联的联系人,该页面显示错误:
undefined method `strftime' for nil:NilClass
然而,当我使用
时<% @contacts.each do |contact| %>
<p><%= contact.created_at %></p>
<p><%= contact.author %></p>
<p><%= contact.description %><p>
<% end %>
打印日期(类似2012-08-26 05:16:15 UTC),以及作者和说明的预期值。
我查看了数据库中联系对象的所有时间戳值,并且没有创建除非次数之外的任何值的create_at值。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
也许你的一条记录的created_at设置为nil,试试这个:
<p><%= contact.created_at.present? ? contact.created_at.strftime("%B %e, %Y") : contact.created_at%></p>
答案 1 :(得分:0)
created_at
不仅可以返回字符串。
你试过这个:
<%= contact.created_at.to_s.strftime("%B %e, %Y") %>
?