Включение самореферентной модели в activerecord и выбор на основе включенной модели из обоих - PullRequest
0 голосов
/ 13 октября 2011

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

У меня есть модель, назовите ее Thing, которая has_many :related_things, has_many :associated_dates и has_many :assignments (пользователи назначены на вещи).Я хочу сделать один запрос, чтобы выбрать все связанные даты из Thing, который назначен пользователю, а также все связанные даты из связанных вещей.

На данный момент у меня есть это, которое работаетдля получения связанных дат, которые непосредственно назначены:

AssociatedDate.includes(:thing)
   .includes(:thing => :assignments)
   .where('assignments.user_id' => id)

Однако мои попытки загрузить также те даты, которые связаны через :related_things, не загружаются.Самое близкое, что у меня есть, это просто включение :related_things в запрос:

AssociatedDate.includes(:thing)
   .includes(:thing => [:assignments, :related_things])
   .where('assignments.user_id' => id)

Но тогда я не знаю, куда идти дальше, и само по себе это не влияет нарезультат запроса.Возможен ли выбор, который я хочу, и как мне это сделать?

1 Ответ

0 голосов
/ 31 октября 2011

Я думаю, вам нужно joins. Посмотрите документацию здесь .

Что-то вроде AssociatedDate.joins(:thing).joins(:thing=>:related_thing)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...