Получить все экземпляры has_many для каждого элемента коллекции - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть модели:

Task которые has_many :comments и has_many :checklists

Comment которые has_many :activities

Checklist которые has_many :activities

-> (полиморфная ассоциация).

Я хочу получить каждый Activity в Task, например, если я сделаю что-то вроде:

Task.first.checklists.first.activities

он возвращает результат, так же:

Task.first.comments.first.activities` 

, но мне не удается написать правильный синтаксис, который дает мне все действия, которые есть в задании, заранее спасибо.

1 Ответ

2 голосов
/ 24 апреля 2019

Вы можете определить has_many through: ассоциации:

class Task 
  has_many :comments
  has_many :checklists

  has_many :comment_activities, through: :comments, source: :activities
  has_many :checklist_activities, through: :checklists, source: :activities
end

и используйте их следующим образом:

Task.first.checklist_activities
Task.first.comment_activities
...