用sqlite在rails中的布尔值

我仍然是一个仍然使用rails的菜鸟,但我正在遇到一些似乎有些奇怪的东西。 我因此在数据库中为模型添加了一个布尔字段

t.column :admin, :bool, :default => false, :null => false 

但是,sqlite3数据库中的值似乎是't''f' 。 这没关系,但我仍然期望user.admin? 如果值为'f'则返回false。 从下面的控制台会话中可以看出,情况并非如此:

 >> user = User.first => # >> user.admin? => true >> user.admin = false => false >> user.save => true >> user = User.first => # >> user.admin? => true 

这只是sqlite的一些奇怪的问题,还是我没有得到什么?

改为使用它:

 t.column :admin, :boolean, :default => false, :null => false 

在这里阅读原因。

问题可能出在数据库迁移上。 我不认为:bool是正确的数据类型名称。 尝试:布尔代替,例如

 t.column :admin, :boolean, :default => false, :null => false