Я играл в консоли rails, пытаясь заставить работать, и я постоянно замечаю, что один из моих запросов продолжает возвращать нуль, когда это не должно. Посмотрев на сгенерированный SQL-запрос, я заметил, что он каждый раз добавляет к нему AND (1=0)
. Это немного раздражает, и я не уверен, почему он это делает.
Примечание. Использование действующего драгоценного камня.
Шаги для воспроизведения:
(После подключения к столам в консоли rails)
2.1.2 :xxxx > @parent = Parent.take
Parent Load (38.1ms) SELECT `parents`.* FROM `parents` LIMIT 1
=> #<Parent id: 37, ...>
2.1.2 :xxxx > @child = Child.where(id: @parent.actable_id)
SQL (0.7ms) SELECT `childs`.`id` AS t0_r0, `childs`.`attribute` AS t0_r1, FROM `childs`
...
LEFT OUTER JOIN `parents` ON `parents`.`actable_id` = `childs`.`id` AND `parents`.`actable_type` = 'child type' WHERE `childs`.`id` = 20 AND (1=0)
=> #<ActiveRecord::Relation []>
Почему это происходит? Как заставить его остановиться?