У меня две модели с ассоциациями has_many through
; Taskflows
и Datasets
. Они имеют таблицу соединений, которая называется DatasetAssignments
.Как получить все ассоциации has_many из активной коллекции записей
Я получаю все Taskflows с помощью:
@taskflows = Taskflows.all
Я знаю, что это возможно, чтобы получить ассоциации из одного объекта ActiveRecord, например:
@taskflow.datasets
, но это возможно, чтобы получить все связанных Datasets
от @taskflows
Коллекция ActiveRecord? Такие, как @taskflows.datasets
Любая помощь будет очень признательна.
Модель:
class Dataset < ActiveRecord::Base
has_many :dataset_assignments
has_many :taskflows, :through => :dataset_assignments
end
class Taskflow < ActiveRecord::Base
has_many :dataset_assignments
has_many :datasets, :through => :dataset_assignments
end
class DatasetAssignment < ActiveRecord::Base
belongs_to :dataset
belongs_to :taskflow
end
спасибо, есть ли разница между выполнением '@ datasets.joins (: taskflows)' и '@datasets .joins (@taskflows) '- @taskflows, исходящие из предыдущего запроса? – RobotEyes
Держитесь, есть проблема с этим. Вы получаете те же записи классов, что и ваш ресивер. Когда '@ datasets' является ресивером, набор данных - это то, что вы получаете, но вам нужны потоки задач. –
Я обновил свой ответ с правильным решением. –