«НЕ ПРАВДА» с Rails 3 запросом или meta_where - PullRequest
2 голосов
/ 01 марта 2011

То, что мне нужно, вероятно, очень просто:

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).

Ответы [ 2 ]

2 голосов
/ 01 марта 2011

В mysql нет логических значений, см .: http://dev.mysql.com/doc/refman/5.1/en/numeric-type-overview.html

BOOL, BOOLEAN

Эти типы являются синонимами для TINYINT (1).Нулевое значение считается ложным.Значения, отличные от нуля, считаются истинными:

. Как вы видите, логические значения всегда являются крошечными, которые переводят в 1 или 0, поэтому рельсы будут создавать «поле! = 1», а не поле.*

Не уверен насчет postgresql через.

0 голосов
/ 18 марта 2011

Это была бы отличная возможность сделать ветку github :) Это полностью функция, которая должна быть добавлена ​​в meta_where.

...