2

我需要的可能很简单:

Table.where('field is not true')

但我不知道这是如何使用 Rails 3 查询接口完成的,可能还有meta_where。问题是虽然 ":field.not_eq => nil" 正确转换为 "IS NOT NULL",但 ":field.not_eq => true" 变成 "!= 1",这显然与 "IS NOT TRUE" 不同"(mysql 和 postgresql 扩展)。

4

2 回答 2

2

mysql 中没有布尔值,请参阅:http ://dev.mysql.com/doc/refman/5.1/en/numeric-type-overview.html

布尔值,布尔值

这些类型是 TINYINT(1) 的同义词。零值被认为是错误的。非零值被认为是真的:

如您所见,布尔值始终是转换为 1 或 0 的小整数,这就是为什么 rails 会创建“字段!= 1”而不是字段不正确的原因。

不确定postgresql是否通过。

于 2011-03-01T10:29:59.917 回答
0

这将是创建 github 分支的绝佳机会 :) 这完全是一个应该添加到 meta_where 的功能。

于 2011-03-17T21:18:20.550 回答