在带有 Postgresql 的 Rails 3.1.3 中,如果您将属性创建为 datetime,则其类使用 ActiveSupport::TimeWithZone。但是,任何可以解释这一点的人:
user=User.first
user.update_attributes(:last_signed_in_at => Time.now) #True, but record isn't updated
user.update_attribute(:last_signed_in_at, Time.now) #True, and record is updated
user.last_signed_in_at = Time.now
user.save #True, and the record is updated
update_attributes 与检查验证的 update_attribute 不同。它失败的唯一原因可能是:
user.last_signed_in_at = ActiveSupport::TimeWithZone
Time.now.class = Time
有谁能整理一下吗?