我正在构建一个 Rails 3.2 Web 应用程序,我需要一些帮助来构建一个 SQL 查询。在我的应用程序中,我得到了用户、项目和任务。用户通过名为 assignments 的连接表分配给任务。
我需要获取所有项目的列表,这些项目获得了选定用户分配到的任务。
项目
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
如何以最有效和最佳实践的方式构建此查询?
更新
这就是我最终解决它的方法:
def index
tasks = current_user.tasks.joins(:project)
@output = tasks.map{|task| task.project}.uniq
end