2011-07-29 10 views
0

私は金髪の瞬間をしており、おそらく脳が凍っています。Find Recordで関連付けられたモデルを使用したアクティブレコードクエリ

私の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]) 

私はこれは簡単だと誰でも助けてくれるでしょう!!

答えて

6

私は、これは

これは、SQLiteのとMySQLで動作するはずです

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

を更新する作業必要がありますね。しかし、PostgreSQLでは、テーブルのすべてのカラムを指定する必要があります。小さなテーブルの場合は、名前を入力するだけです。

def self.column_list 
    self.column_names.collect { |c| "#{self.to_s.pluralize.downcase}.#{c}"}.join(",") 
end 

をして素晴らしいです.group(User.column_list)

+0

.group(:id)を変更しますか、あなたがモデルにこのメソッドを追加することができます!私は愚かであったと思って、私は前に参加していなかったことが分かります。一意の値だけを表示する方法は可能です - そこには重複したデータがいくつか表示されます。 –

関連する問題