Rails 4. created_at 字段的 nil:NilClass 的未定义方法 `strftime'
Rails 4. Undefined method `strftime' for nil:NilClass for created_at field
只是一个非常简单的数据记录应用程序,用于记录和显示 Rails 中的时间表条目 4. 在意识到记录的时间条目比我的时区早 2 小时后,我设置了 config.time_zone和 config.active_record.default_timezone 值分别为 'Berlin'。
然而,在这次攻击之后,ActiveRecord 开始将毫秒数据添加到 'created_at' sqlite-DB-column,结果引发了 "undefined method `strftime' for 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>
有没有办法停止rails记录精确时间数据,或者其他解决方案?
提前致谢!
t.created_at.try(:strftime,'%Y.%m.%d %H:%M')
您可以使用这样的条件:
<% if t.created_at.present? %>
<td><%= t.created_at.strftime('%Y.%m.%d %H:%M') %></td>
<% else %>
<td><p> Time Not Available </p></td>
<% end %>
在找到解决方案之前进行了大量研究。我也尝试过完全重置数据库但没有成功。
然后我找到了这个:
Rails 4 model returns always nil
application.rb中config.active_record.default_timezone的值不能设置为特定的时区,而是像:local或:utc这样的符号。
application.rb:
config.time_zone = 'Berlin'
config.active_record.default_timezone = :local
此更改和进一步的 db:reset 解决了问题。
感谢您的贡献。
只是一个非常简单的数据记录应用程序,用于记录和显示 Rails 中的时间表条目 4. 在意识到记录的时间条目比我的时区早 2 小时后,我设置了 config.time_zone和 config.active_record.default_timezone 值分别为 'Berlin'。
然而,在这次攻击之后,ActiveRecord 开始将毫秒数据添加到 'created_at' sqlite-DB-column,结果引发了 "undefined method `strftime' for 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>
有没有办法停止rails记录精确时间数据,或者其他解决方案? 提前致谢!
t.created_at.try(:strftime,'%Y.%m.%d %H:%M')
您可以使用这样的条件:
<% if t.created_at.present? %>
<td><%= t.created_at.strftime('%Y.%m.%d %H:%M') %></td>
<% else %>
<td><p> Time Not Available </p></td>
<% end %>
在找到解决方案之前进行了大量研究。我也尝试过完全重置数据库但没有成功。 然后我找到了这个:
Rails 4 model returns always nil
application.rb中config.active_record.default_timezone的值不能设置为特定的时区,而是像:local或:utc这样的符号。
application.rb:
config.time_zone = 'Berlin'
config.active_record.default_timezone = :local
此更改和进一步的 db:reset 解决了问题。 感谢您的贡献。