Я предполагаю, что вы определили эти ассоциации. Поправь меня, если я ошибаюсь.
В классе Пригород:
has_many :listings
belongs_to :city
В классе Листинга:
belongs_to :suburb
В классе города:
has_many :suburbs
Теперь, чтобы получить все списки, где город city_id
, вам нужно объединить списки с пригородом, а затем с городом, а затем вам нужно отфильтровать результаты. Перейдите по этой ссылке , чтобы лучше понять
listings = Listing.joins(suburb: :city).where('listings.updated_at >= ?', 2.months.ago).where(cities: {id: city_id })
Это должно работать.