使用 Rails 3.1rc5 和 devise 1.4.2。我在用户表上有以下列
add_column :users, :has_dummy_password, :boolean, :default => false, :null => false
如果没有:null => false
如果我对现有用户记录执行以下操作...
user.has_dummy_password = false
user.save
...然后在 mysql 中该列的值为 NULL。
随着:null => false
子句 I(毫不奇怪)出现以下 mysql 错误:
Column 'has_dummy_password' cannot be null
我可以通过这样做来解决这个问题
user.has_dummy_password = 0
user.save
因为“幕后”布尔值在 mysql 中被实现为tinyint。但这似乎有点不幸。
在Rails 3.1中是否可以实际设置布尔列值为true/false而不是1/0?