无法使用Rails 5.0.1和MySQL更新布尔值列

时间:2018-08-22 07:43:06

标签: mysql ruby-on-rails activerecord ruby-on-rails-5

我有一个模型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?

1 个答案:

答案 0 :(得分:0)

在测试中,您正在尝试更新true值还是Diary.last.update_attributes(is_draft: false) 值?

从真实的角度尝试:

implementation 'com.android.support:appcompat-v7:28.1.1