Rails / Date:请勿在Date对象上使用“ to_time”

时间:2018-11-16 16:14:47

标签: ruby-on-rails

因此,我将ERB转换为Slim,并受到棉绒问题的打击。我正在

  

轨距/日期:请勿在Date对象上使用to_time,因为它们对时区一无所知

有问题的代码实际上是:

=@product.updated_at.to_time.strftime('%B %e @ %l:%M %p')

数据本身实际上是:2018-11-16 12:40:20.12345。我的想法是今天只尝试使用.zone.。导致

  

“ EDT”的未定义方法“今天”:字符串

所以我想我将使用.current / .current.strftime('%B%e @%l:%M%p'),结果为

  

两种尝试均未定义的方法“当前”

我进入了application.rb,并确保自己拥有

config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = :local

我想念什么?

2 个答案:

答案 0 :(得分:1)

看来您应该这样做:

@product.updated_at.strftime('%B %e @ %l:%M %p')

如果我根据自己的一项记录进行操作,则会得到:

"November 12 @  9:26 AM"

答案 1 :(得分:0)

在工作的某个时刻,我遇到了一些错误(例如:“ \\ 2019-01-25T18:40:25.536Z \”的未定义方法'strftime':“ String \ n”这是您的意思吗? )使用...updated_at.strftime和一些带有to_time的Rubocop警告,因此我仅使用 to_datetime 解决了没有警告的问题。