Rails 3.1:使用非null布尔mysql列保存记录的问题(false保存为NULL)
使用Rails 3.1rc5并设计1.4.2。 我在users表上有以下列
add_column :users, :has_dummy_password, :boolean, :default => false, :null => false
如果我使用现有用户记录执行以下操作,则不使用:null => false
子句…
user.has_dummy_password = false user.save
…然后在mysql中,列的值为NULL。
使用:null => false
子句我(毫不奇怪)得到以下mysql错误:
Column 'has_dummy_password' cannot be null
我可以通过这样做来解决这个问题
user.has_dummy_password = 0 user.save
因为“引擎盖下”布尔值在mysql中实现为tinyint。 这看起来有点不幸。
是否可以在Rails 3.1而不是1/0中实际设置布尔列值为true / false?