Ruby on rails 在Find子句中使用关联模型的活动记录查询

Ruby on rails 在Find子句中使用关联模型的活动记录查询,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,我有一个金发的时刻,可能是大脑冻结 在我的rails3应用程序中,我有用户和任务。我的用户有很多任务 我有以下到期和过期的任务: @due = Task.find(:all, :conditions => ["dueddate >= ? AND AND status = ?", Date.today, false], :include => :taskcategories, :order => "dueddate asc") 在我的任务视图中,我要做的是列出具有到期

我有一个金发的时刻,可能是大脑冻结

在我的rails3应用程序中,我有用户和任务。我的用户有很多任务

我有以下到期和过期的任务:

@due = Task.find(:all, :conditions => ["dueddate >= ? AND AND status = ?", Date.today, false], :include => :taskcategories, :order => "dueddate asc")  
在我的任务视图中,我要做的是列出具有到期任务的用户

由于某种原因,我无法理解它。我试过这个,但不起作用:

@task = Task.all

@user = User.find(:all, :conditions => ["@task.dueddate <= ? AND 
@task.status = ?", Date.today + 7.days, false])
@task=task.all

@user=user.find(:all,:conditions=>[“@task.dueddate我想这应该行得通

已更新

User.joins(:tasks)
    .where("tasks.dueddate <= ? AND tasks.status = ?", Date.today + 7.days, false).group(:id)

然后将
.group(:id)
更改为
.group(User.column\u list)

我想这应该行得通

已更新

User.joins(:tasks)
    .where("tasks.dueddate <= ? AND tasks.status = ?", Date.today + 7.days, false).group(:id)

并将
.group(:id)
更改为
.group(User.column\u列表)

那太棒了!我以为我很愚蠢,结果发现我以前没有做过连接。怎么可能只显示唯一的值?我可以在其中看到一些重复的数据。那太棒了!我以为我很愚蠢,结果证明我以前没有做过连接。怎么可能只显示唯一的值?我可以看到一些重复的数据塔塔在那里。