Rails - 更新记录?
问题描述:
使用heroku,我试图更新记录。Rails - 更新记录?
这是我做过什么:
@user = User.find(11)
@user.email = '[email protected]'
@user.save
>> true
但后来当我做User.find(11),电子邮件不更新?任何想法为什么?
答
我会推荐在@user.save
后尝试@user.reload
。上面尝试@user.save!
(阅读 - “@user dot save bang”)的建议也很好,因为如果在保存@user
时验证失败,它将引发错误。
希望有所帮助。
答
也尝试@user.save!
如果任何验证出错,将会出现错误。但是,如果@user.save
给出了真实的,那么我没有看到它没有保存到数据库的任何原因。
答
如果你得到true
那么你不必担心没有被验证的记录。真的告诉你它确实得救了。但使用@user.save!
(如上面提到的@rubyprince)是一个好习惯。这样,将会引发无效的更新尝试。
此外,你确定它没有得到更新?如果你正在使用数据库后端,我会直接去数据库,而不是依赖于User.find()
你也可以尝试做User.find(11).reload
看看是否有效。你可以找到一些信息here约reload
。所以你可以尝试这样的...
user = User.find(11).reload
puts user.email
然后看看电子邮件是否改变。
这是确切的代码?因为您没有关闭电子邮件中的报价。 – acconrad 2011-02-11 03:03:40