我有一个简单的问题.我想User.find(1)在rails控制台中更改一些字段值.
我试过了:
u = User.find(1)
u.update_attributes(roles_mask: 3)
Run Code Online (Sandbox Code Playgroud)
并得到了false回报.当我检查时u.errors.full_messages,我发现这是因为密码验证存在问题has_secure_password.如何在控制台中手动更新?
jvn*_*ill 72
如果您想绕过验证,请使用
# skip validations but run callbacks
u.update_attribute :roles_mask, 3
Run Code Online (Sandbox Code Playgroud)
要么
# do the update on the sql so no validation and callback is executed
u.update_column :roles_mask, 3
Run Code Online (Sandbox Code Playgroud)
Muh*_*ais 11
您必须首先验证用户,然后您可以更新用户看看这里
u = User.find(1)
u.authenticate("password")
u.update_attributes(roles_mask: 3)
Run Code Online (Sandbox Code Playgroud)
或者,如果您想跳过验证,可以按照以下步骤操作;
u = User.find(1)
u.update_attribute :roles_mask, 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51315 次 |
| 最近记录: |