Я создаю веб-приложение Rails 3.2, и мне нужна помощь в построении SQL-запроса. В моем приложении у меня есть пользователи, проекты и задачи. Пользователи назначаются задачам через таблицу соединений, называемую присваиваниями.Как получить родительские записи на основе дочерних записей
Мне нужно получить список всех проектов, которые получили задания, которым назначен выбранный пользователь.
Проект
has_many :tasks
Задача
has_many :assignments
has_many :users, :through => :assignments
Пользователь
has_many :assignments
has_many :tasks, :through => :assignments
Назначение
belongs_to :user
belongs_to :task
Как contruct этот запрос в наиболее эффективной и наилучшей практики пути?
Update
Это, как я, наконец, решил это:
def index
tasks = current_user.tasks.joins(:project)
@output = tasks.map{|task| task.project}.uniq
end
Очень умная реализация «присоединений» ... это действительно сокращает многословие. Мне нужно помнить об этом в будущем. – zeantsoi