我正在做导轨教程:
https://www.railstutorial.org/book/account_activation_password_reset
我有这段代码可以创建一个reset_token,并将其哈希值和创建时间保存到数据库中。
def create_reset_digest
self.reset_token = User.new_token
update_attribute(:reset_digest, User.digest(reset_token))
value = update_attribute(:reset_sent_at, Time.zone.now)
print value
end
在reset_sent_at上的update_attribute之前启动调试:
self.reset_sent_at == 2000-01-01 12:36:53 UTC
之后:
self.reset_sent_at == Thu, 22 Oct 2015 12:52:47 UTC +00:00
但是做self.reload会:
self.reset_sent_at == 2000-01-01 12:36:53 UTC
所以也许update_attribute没有保存在db?
上但是打印值返回True,表示保存成功。
我不确定发生了什么。
答案 0 :(得分:0)
发现发生了什么,在我有t时间的架构上" reset_sent_at" 而不是t.datetime。奇怪的是update_attribute返回true。