2010-10-23 26 views
2

開始時這似乎很微不足道,但我現在無法正確理解它。這種關係是微不足道的。Rails活動模型 - 僅在has_many關係中具有現有成員的範圍對象

class Project < ActiveRecord::Base 
    has_many :tasks 
end 

class Task < ActiveRecord::Base 
    belongs_to :project 
end 

現在我只想獲得所有具有一個或多個任務關聯的項目。現在要做到這一點沒有任何擴展邏輯(最好在一個查詢中)。後端在Postgresql上。

編輯:

其實最好的是如果我能得到它具有特定條件的任務項目。像:

task.status > 0 

回答

2

範圍:having_tasks,:加入=>:任務:選擇=> '不同的項目。*':條件=> 'tasks.status> 0'

+0

你可以在寫這篇文章一個範圍(在項目模型中): 範圍:with_tasks,:joins =>:tasks,:conditions =>'tasks.project_id = projects.id' 然後你可以使用:@projects = Projects.with_tasks – ipsum 2010-10-23 14:35:59

+0

你是對的,我只是沒有注意到標題,並沒有把它當作範圍來寫;)當你打開幾個標籤並且瀏覽所有標籤時會發生這種情況。我的壞 – 2010-10-23 15:00:25

+0

加入automaticaly添加了給定的條件,所以沒有必要添加:像上面那樣的條件。這個查詢的問題是,它返回任何給定項目的多行。分組實際上解決了這個問題,但Postgress希望我將所有30個字段添加到group by子句中,這是我不太瞭解的。最重要的是,我搞砸了這個問題。我真正需要的是具體條件的任務(更新問題)。 – mdrozdziel 2010-10-24 15:14:37

相關問題