Как получить записи, в которых значение Associated_id связано с заданным значением - PullRequest
2 голосов
/ 09 октября 2019

У меня есть активная запись о пригороде, которая принадлежит городу, и у меня много записей, я хочу получить списки, в которых заданному значению является город пригорода.

    listings = Listing.joins(:suburbs).where('listings.updated_at >= ?', 2.months.ago).where('city_id = ?', city_id)

Ответы [ 2 ]

2 голосов
/ 09 октября 2019

Я предполагаю, что вы определили эти ассоциации. Поправь меня, если я ошибаюсь.

В классе Пригород:

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 })

Это должно работать.

0 голосов
/ 09 октября 2019
  1. Найти пригород по заданному идентификатору
  2. Найти все связанные списки для пригорода. Проверьте документы для получения дополнительной информации.
Suburb.find(city_id).listings.where('updated_at >= ?', 2.months.ago)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...