2013-07-25 73 views
-2

我的工作纔是最重要的一個家庭的鄰居的報告 - 我期待在使用一個輔助方法,簡單的查詢或兩者從父陣列計數相關對象的對象

一個家庭是有幾個對象鄰居,我想計算一組選定的家庭中的鄰居總數。我有戶一組ID:

@household_ids = [31, 15, 30, 38, 1, 5, 32, 25, 10, 26, 14,29] 

我嘗試這樣做:

def household_neighbor_count(houses) 
    houses.each do |id| 
    @neigh = Household.find(id).neighbor_count 
    @neigh 
    end 
end 

不工作 - 它返回的ID的

由於這一個名單Rails的我也可以做一個積極的記錄查詢,這是我在僞sql的鏡頭:

Neighbors where household_id == household_id in @household-ids 

我使用squeel如果有幫助

如何做到這一點無論是-approach罰款,最好的辦法的建議是偉大的

回答

0

目前還不清楚是什麼你正在嘗試做的,但我想這是你想要什麼:

houses.map{|id| Household.find(id).neighbor_count}.inject(:+) 

如果有房子中的鄰居中重複,那麼你需要一個方法來獲得的鄰居集爲一個給定的H ouse,不只是數。而且既然你還沒有顯示這樣的方法,我想這或者不是問題,或者你的問題是不恰當的。

0

Asuming有鄰居模型household_id

@household_ids = [31, 15, 30, 38, 1, 5, 32, 25, 10, 26, 14,29] 
total_number_of_neighbors = Neighbor.where('household_id IN (?)', @household_ids).count 
0

嘗試了這一點

Household.includes(:neighbors).select('households.id, neighbors.id').where(:id => [31, 15, 30, 38, 1, 5, 32, 25, 10, 26, 14,29]).map{|r| {r.id => r.neighbors.count}}