【发布时间】:2014-05-26 04:52:33
【问题描述】:
我需要在我的 Rails 应用程序中运行以下代码:
ActiveSupport::TimeZone["Central Time (US & Canada)"].parse(game.date).utc.to_date.strftime("%_m/%d")[1..-1]
游戏在哪里@games.each do |game|
但这不起作用,我收到错误,TypeError: no implicit conversion of ActiveSupport::TimeWithZone into String。
但是,我可以运行:
ActiveSupport::TimeZone["Central Time (US & Canada)"].parse("2014-04-11 12am").utc.to_date.strftime("%_m/%d")[1..-1]
返回“4/11”
如何将上述代码与 `game.date' 一起使用,而不是硬编码字符串?
编辑
Game 对象如下所示(来自 db/seeds.rb):
Game.create(id: 9, date: "2014-04-11 12am", time: "705PM", opponent: "Jacksonville", away: false, event: "friday night fireworks")
编辑 2
在我执行 game.date 时,在 Rails 控制台中它返回:
Fri, 11 Apr 2014 00:00:00 UTC +00:00
所以它似乎不是一个字符串。
【问题讨论】:
-
game.date是字符串还是其他日期对象类型? -
您能发布示例游戏对象或@game 数组吗?
-
我编辑了我的问题。谢谢!
-
因为在控制台中
#to_s被控制台中的Date对象调用。 -
有什么方法可以解析 Date 对象?
标签: ruby-on-rails ruby activesupport