2011-02-11 151 views
1

使用heroku,我试图更新记录。Rails - 更新记录?

这是我做过什么:

@user = User.find(11) 
@user.email = '[email protected]' 
@user.save 
>> true 

但后来当我做User.find(11),电子邮件不更新?任何想法为什么?

+0

这是确切的代码?因为您没有关闭电子邮件中的报价。 – acconrad 2011-02-11 03:03:40

回答

3

我会推荐在@user.save后尝试@user.reload。上面尝试@user.save!(阅读 - “@user dot save bang”)的建议也很好,因为如果在保存@user时验证失败,它将引发错误。

希望有所帮助。

0

也尝试@user.save!如果任何验证出错,将会出现错误。但是,如果@user.save给出了真实的,那么我没有看到它没有保存到数据库的任何原因。

0

如果你得到true那么你不必担心没有被验证的记录。真的告诉你它确实得救了。但使用@user.save!(如上面提到的@rubyprince)是一个好习惯。这样,将会引发无效的更新尝试。

此外,你确定它没有得到更新?如果你正在使用数据库后端,我会直接去数据库,而不是依赖于User.find()

你也可以尝试做User.find(11).reload看看是否有效。你可以找到一些信息herereload。所以你可以尝试这样的...

user = User.find(11).reload 
puts user.email 

然后看看电子邮件是否改变。