我在Rails 4中工作,并试图格式化从SQLite DB中提取的日期时间。我在模型中工作,但对象类的行为非常奇怪。
如果我键入:Duration <%= micropost.duration %>
然后打印完整的日期时间。我只想要时间。
如果我键入:Duration <%= micropost.duration.strftime("%H:%M:%S") %>
那么我得到错误:用于nil:NilClass`的undefined method
strftime'
所以我试着输入:Duration <%= micropost.duration.class %>
并返回类型:ActiveSupport::TimeWithZone
看起来它有时会识别类型,有时不会。为了使问题更加复杂,在IRB中,strftime("%H:%M:%S")
方法起作用。
Rails4中的"如何从db:datetime记录格式化时间和日期"中也提出了类似的问题,但该解决方案不起作用。我找对地方了吗?
我认为您正在循环中尝试它,并且任何一个micropost持续时间都为零。试试这个
Duration <%= micropost.duration.strftime("%H:%M:%S") if micropost.duration.present? %>