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