Предположим, у меня есть три таблицы в приложении Rails: cats
, dogs
и owners
. Я хочу найти всех кошек, у владельцев которых нет также есть собаки.
С SQL я мог бы сделать следующее:
SELECT
`cats`.*
FROM
`cats`
LEFT JOIN `dogs` ON `cats`.`owner_id` = `dogs`.`owner_id`
WHERE
`dogs`.`id` IS NULL;
Тем не менее, я хотел бы сделать это в виде цепочки для Cat
. Самое близкое, что я получил до сих пор, это Cat.connection.select_all(query_string)
, но это не цепочка.
Как ActiveRecord это делает?