在我们的 rails 3.1.4 应用程序中,表记录中有一个canceled
列。最初canceled
在 Firefox SQLite 管理器中创建为 BOOL,这是软件提供的默认类型。在canceled = false
rails 中,false
被保存到 col 的记录表中canceled
。问题是使用 查询时,未选择带有asRecord.where("canceled = ?", false)
的记录,因为在 sqlite3 中未将其解释为 FALSE。为了选择 all = false,我们必须这样做。canceled
false
false
canceled
Record.where("canceled =? OR canceled =?", false, 'false')
在我们在 SQLite 管理器中手动将数据类型canceled
从 BOOL 更改为 'boolean' 后,可以使用asRecord.where("canceled =? ", false)
获取新创建的记录。在 SQLite 管理器中,这些值表示为被 rails 解释为 FALSE。canceled
f
canceled
f
如何修复表记录(使用 'false' 表示canceled
)以便Record.where("canceled =? ", false)
有效?非常感谢。
更新:在 rails 控制台中查询表记录时,canceled
不表现为布尔值(真或假)。所有带有false
in 列的记录都不能被或canceled
拾取。但是返回的 .class仍然在 rails 控制台中。奇怪,不是吗?Record.where("canceled =?", true)
Record.where("canceled =?", false)
canceled
FalseClass