使用heroku,我正在尝试更新记录。
这就是我所做的:
@user = User.find(11)
@user.email = 'xxx@xxx.com'
@user.save
>> true
但是当我做User.find(11)时,电子邮件没有更新?有什么想法吗?
答案 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
查看电子邮件是否已更改。