Rails 4. nil的未定义方法`strftime':created_at字段的NilClass

时间:2015-08-23 22:29:01

标签: ruby-on-rails-4 activerecord strftime

用于录制的简单数据录制应用程序在Rails中显示时间表条目4.在认识到我的时区记录的时间条目提前2小时后,我已将config.time_zone和config.active_record.default_timezone值分别设置为“柏林”。

但是,在此hack之后,ActiveRecord开始向'created_at'sqlite-DB-column添加毫秒数据,因此为我的创建日期时间的显示抛出了“未定义的方法`strftime'为nil:NilClass”错误。 这就是我看病的样子:

<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>

有没有办法阻止铁轨记录精确时间数据或其他解决方案? 提前致谢!

2 个答案:

答案 0 :(得分:4)

t.created_at.try(:strftime,'%Y.%m.%d %H:%M')

答案 1 :(得分:0)

在找到解决方案之前做了很多研究。我也尝试过完整的数据库重置而没有成功。 然后我找到了这个:

Rails 4 model returns always nil

application.rb中config.active_record.default_timezone的值不能设置为特定时区,而是设置为:local或:utc。

    The result of debug :

console.log(diffs);
alert(diffs[0].comment_bapak); is =>

[]
TypeError: diffs[0] is undefined

此更改和另一个db:reset解决了问题。 感谢您的贡献。