我需要的可能很简单:
Table.where('field is not true')
但我无法想象如何使用Rails 3查询界面完成此操作,并且可能使用meta_where。问题是,当“:field.not_eq => nil”正确转换为“IS NOT NULL”时,“:field.not_eq => true”变为“!= 1”,这显然与“IS”不同不是“(mysql和postgresql扩展名)。
答案 0 :(得分:2)
mysql中没有布尔值,请参阅:http://dev.mysql.com/doc/refman/5.1/en/numeric-type-overview.html
BOOL,BOOLEAN
这些类型是TINYINT(1)的同义词。值为零被视为false。非零值被认为是真的:
如你所见,布尔值总是微小的转换为1或0,这就是为什么rails会创建“field!= 1”而不是字段的原因。
不确定postgresql通过。
答案 1 :(得分:0)
这将是一个创建github分支的绝佳机会:)它是完全应该添加到meta_where的功能。