【发布时间】:2015-08-23 22:29:00
【问题描述】:
只是一个简单的数据记录应用程序,用于在 Rails 4 中记录和显示时间表条目。在意识到我的时区记录的时间条目提前 2 小时后,我将 config.time_zone 和 config.active_record.default_timezone 值设置为分别是“柏林”。
但是,在这次 hack 之后,ActiveRecord 开始将毫秒数据添加到“created_at”sqlite-DB 列中,因此在我显示创建日期时间时会引发“nil:NilClass 的未定义方法 `strftime'”错误. 这就是我的不良观点:
<table>
<% @timesheets.each do |t| %>
<tr>
<td><%= t.user.name %></td>
<td><%= t.t_lines %> sor</td>
<td><%= t.t_time %> perc</td>
<td><%= t.created_at.strftime('%Y.%m.%d %H:%M') %></td>
</tr>
<% end %>
</table>
有没有办法停止轨道记录精确时间数据,或其他解决方案? 提前致谢!
【问题讨论】:
-
您尝试打印的记录是否在您的数据库中设置了
created_at列? -
是的,确实如此,通过 Rails 的迁移自动时间戳。
-
在开头执行
def nil.strftime; end,错误就会消失。
标签: ruby-on-rails-4 activerecord strftime