我有一个简单的问题.我想在rails控制台中为我的User.find(1)更改一些字段值.

我试过:

u = User.find(1)
u.update_attributes(roles_mask: 3)

得到了false元.当我判断u.errors.full_messages时,我发现这是因为has_secure_password的密码验证有问题.如何在控制台中手动更新?

推荐答案

如果要绕过验证,请使用

# skip validations but run callbacks
u.update_attribute :roles_mask, 3

# do the update on the sql so no validation and callback is executed
u.update_column :roles_mask, 3

Ruby-on-rails相关问答推荐

为Rails服务器推荐的交付类型

安装特定版本的Ruby时出现问题(OpenSSL问题)

Rails:has_many 通过不返回结果

Ruby 3 动态关键字参数

正确更新其他列的更新列

rails4 未知编码名称 - CP720

如何从 Rails 路由中删除控制器名称?

水豚 click_link 与 :href 匹配

添加自定义字段/列以使用 Rails 4 进行设计

在 ID 存在时获取表的未知主键

不带参数的 request.fullpath

不允许请求来源:使用 Rails5 和 ActionCable 时的 http://localhost:3001

带有 master.key 的 Rails 5.2 - Heroku 部署

如何显示 RSpec 测试生成的 SQL 查询日志(log)?

如何禁用 HTTP 严格传输安全性?

如何拯救 OmniAuth::Strategies::OAuth2::CallbackError?

我收到在扫描下一个令牌时发现无法启动任何令牌的字符

如何强制 RSpec 测试失败?

Rails 生成 has_many 关联

Ruby:如何将一种方法接收到的所有参数和块传递给另一种方法?