0
我有對象的數組的數組創建總和的數組,看起來像這樣:Ruby on Rails的:從對象
[#<Holding id: 5, user_id: 21, outcome_id: 7, quantity: 200, cost_basis: nil, created_at: "2011-12-15 20:52:05", updated_at: "2011-12-15 20:52:05">,
#<Holding id: 6, user_id: 21, outcome_id: 7, quantity: 750, cost_basis: nil, created_at: "2011-12-15 21:31:30", updated_at: "2011-12-15 21:31:30">,
#<Holding id: 7, user_id: 21, outcome_id: 9, quantity: 1231, cost_basis: nil, created_at: "2011-12-15 21:35:31", updated_at: "2011-12-15 21:35:31">]
我用我的模型的find_all_by_user_id檢索這個(Holding.find_all_by_user_id(21)) 。但是,我需要的是一系列總和。所以,舉例來說,我想獲得,而不是在這種情況下是:
[#<Holding id: 5, user_id: 21, outcome_id: 7, quantity: 950, cost_basis: nil, created_at: "2011-12-15 20:52:05", updated_at: "2011-12-15 20:52:05">,
#<Holding id: 7, user_id: 21, outcome_id: 9, quantity: 1231, cost_basis: nil, created_at: "2011-12-15 21:35:31", updated_at: "2011-12-15 21:35:31">]
什麼會讓它更妙的是,如果我可以從我的成果模型Outcome.description拉,讓它在這個第二數組以及id。我只需要循環並創建其中的outcome_id匹配或有更好的方法?
我同意在SQL中這樣做是更好的解決方案。它返回的數據少得多,總是有用的,再加上DBM就是爲這種提升而做的。我唯一需要檢索整行的是如果必須根據總和進行後續的數據處理。 – 2011-12-16 00:15:20