Как мне написать метод поиска Rails для поиска моей модели, где has_many не имеет определенного атрибута? - PullRequest
0 голосов
/ 25 февраля 2020

Я использую Rails 5. У меня есть следующая модель ...

class City < ApplicationRecord
    ...
    has_many :photos, :autosave => true, :dependent => :destroy, :as => :photo, :inverse_of => :photo

Я понимаю, что если я хочу искать города без фотографий, я могу написать этот искатель ...

City.includes(:photos).where(photos: { city_id: nil })

но что, если я хочу найти города, в которых нет фотографий, где атрибут расширения фотографии - "JPG"?

1 Ответ

0 голосов
/ 25 февраля 2020

Это даст все города, в которых нет JPG или нет фотографий

City.where.not(id: Photo.select(:city_id).where(extension: 'JPG'))
...