2009-09-29 38 views
0

我有這種情況:的has_many和總和named_scope

Stories has many Tasks 
Tasks have an integer called hours_left 

我需要一個命名範圍,找到其中的所有任務已大於0時朝故事。

基於 this post

。我寫到:

class Story 
    has_many :tasks 
    named_scope :uncompleted, { 
    :joins=>["INNER JOIN tasks ON tasks.story_id = stories.id"], 
    :group=> 'stories.id', 
    :select=>'stories.*, SUM(tasks.hours_left) AS sum_amount', 
    :having=>"sum_amount > 0" 
    } 
end 

但是Story.uncompleted返回一個空數組。

你能幫我嗎?

+0

我也注意到,如果我刪除了:具有=>「sum_amount> 0」條件我得到的所有的故事:那些以0分朝具有屬性HOURS_LEFT設置爲「0」,但其餘的(那些我想要的)有hours_left設爲零。 –

回答

0

解決。該代碼實際工作中,問題是,它返回nil,彷彿任何的任務有HOURS_LEFT =零和的結果。我驗證了hours_left的存在,就這些。