即使在重新加载后,属性也不会在update_attribute上更新

时间:2015-10-22 12:56:31

标签: ruby-on-rails ruby-on-rails-3

我正在做导轨教程:

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,表示保存成功。

我不确定发生了什么。

1 个答案:

答案 0 :(得分:0)

发现发生了什么,在我有t时间的架构上" reset_sent_at" 而不是t.datetime。奇怪的是update_attribute返回true。