Rails - 更新记录?

时间:2011-02-11 03:01:29

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

使用heroku,我正在尝试更新记录。

这就是我所做的:

@user = User.find(11)
@user.email = 'xxx@xxx.com'
@user.save
>> true

但是当我做User.find(11)时,电子邮件没有更新?有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我建议您在点击@user.reload后尝试@user.save。尝试@user.save!(读取 - “@user dot save bang”)的上述建议也是一个很好的建议,因为如果在保存@user时验证失败将导致错误。

希望有所帮助。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

另外,你确定它没有更新吗?如果您使用的是数据库后端,我会直接访问数据库而不是依赖User.find()

您也可以尝试User.find(11).reload来查看是否有效。您可以找到关于reload的一些信息here。所以你可以试试这样的......

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

查看电子邮件是否已更改。