我有4个模型[Project,Task,TaskAssignment,User]与此关系:
n:m
用户through
TaskAssignment hasMany
任务现在我想获得所有具有分配给特定用户的任务的项目。
我的尝试:
Project
.includes(:tasks, {:task_assignments => [:tasks, :task_assignments]})
.where("task_assignments.user_id = #{user_id}")
.references(:tasks)
引发ActiveRecord::ConfigurationError (Association named 'task_assignment' was not found on Project; perhaps you misspelled it?)
答案 0 :(得分:0)
你应该使用联接,不管怎样,task_assignments属于任务。尝试这样做。
答案 1 :(得分:0)
我明白了:
首先,将此关系添加到项目模型中:
has_many :task_assignments, through: :tasks
然后使用此查询:
Project.includes(:task_assignments).where("task_assignments.user_id = #{user_id}").references(:task_assignments)