Допустим, у меня есть 2 модели Album
и Image
и модель соединения с именем AlbumImage
(и 3 соответствующие таблицы в базе данных).
Модели имеют общие свойстваАссоциация-ко-многим - Album
имеет множество от images
до album_images
и наоборот.
TL; dr версия
Как найти каждое изображение, которое не отображаетсяданный альбом?
Длинная версия
Я ищу что-то эквивалентное следующему SQL:
SELECT * FROM images
WHERE NOT EXISTS (
SELECT * FROM album_images
WHERE album_images.image_id = images.id
AND album_images.album_id = ?
);
т.е. выберите каждое изображение, где не существует строкив таблице album_images
с тем же идентификатором изображения и идентификатором данного альбома.
Но я, к сожалению, не знаю, как выразить это в синтаксисе запроса Rails.