对RubyOnRails不熟悉,我在Heroku机器上遇到strftime错误,下面的代码是heroku日志进行验证。
2014-08-03T15:15:06.051867+00:00 app[web.1]: ActionView::Template::Error (can't convert
ActiveSupport::TimeWithZone into an exact number):
此代码正在我的views / shared / events文件中使用
<%= Time.at(event_item.created_at).strftime("%d-%b-%Y") %>
这个代码在我当地的生产机器上工作很棒,但不是在heroku机器上,我完全混淆了,我认为heroku不支持strftime,还有其他方法吗?等待您的帮助,提前致谢。
注意:使用Postgresql for Database Ruby 1.9.3 Rails 3.2.8
答案 0 :(得分:2)
在格式化之前,您应该将时间转换为DateTime
。
当你最终显示日期时,我想这对你也有用:
<%= event_item.created_at.to_datetime.strftime("%d-%b-%Y") %>
Time.at()
在这里似乎毫无用处:
Time.at(event_item.created_at).class # => ActiveSupport::TimeWithZone
event_item.created_at.class # => ActiveSupport::TimeWithZone
event_item.created_at.to_datetime.class # => DateTime
有关 to_datetime
的更多信息