无法使用Rails5.0.1和mysql更新布尔列

wljmcqd8  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(252)

我有个模特 Diary ,其中包含列 is_draft (布尔值,null:false)。我把它设置成枚举范围 is_draft: { draft: true, published: false } .
当我在rails控制台中执行此操作时,

Diary.last.update!(is_draft: false)

它会创建这样的查询,但失败:

UPDATE `diaries` SET `is_draft` = NULL, `updated_at` = '2018-08-22 16:39:17' WHERE `diaries`.`id` = 66

ActiveRecord::StatementInvalid: Mysql2::Error: Column 'is_draft' cannot be null

另一方面,这是成功的。

Diary.last.update!(is_draft: true)

如何将其更新为false?

kse8i1jr

kse8i1jr1#

在测试中,您正在尝试更新 false 值或a true 价值?
从一个真实的Angular ,尝试:

Diary.last.update_attributes(is_draft: false)

相关问题