我正在尝试为ActiveRecord 4.0提供最小的测试用例。我所拥有的是this gist,但是这条消息失败了:
1) Failure:
BugTest#test_association_stuff [millisecond_resolution.rb:28]:
Expected: "ActiveSupport::TimeWithZone"
Actual: "Time"
在完整的Rails应用中,这确实会返回ActiveSupport::TimeWithZone
。我缺少的是AS和AR之间的链接,以便后者将时间戳返回为TimeWithZone
。我已经添加了
ActiveRecord::Base.default_timezone = :local
ActiveRecord::Base.time_zone_aware_attributes = true
无济于事。我也知道lazy_load_hooks
in AS,但请注意它们是否适用。
我在这里缺少什么?我走错了路吗?
答案 0 :(得分:1)
好的伙伴,
我的计算机上只有rails 4.0.0,但是快速的说法让我想到了这个:
# activesupport-4.0.0/lib/active_support/time_with_zone.rb:39
# Report class name as 'Time' to thwart type checking.
def self.name
'Time'
end
希望能让你更接近解决方案。
答案 1 :(得分:1)
您的测试中未设置时区。你必须设置时区。
Time.zone = 'Berlin'
有关详细信息,请参阅http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html。