2012-09-28 107 views
1

有а小問題,通過ActiveRecord的查詢接口 寫它實際上是:我如何顯示查詢結果的ActiveRecord查詢接口

Gp.select("date('gps'.'created_at') as date,('users'.'name') as name, SUM('gps'.'sum_issue') as sum_issue").joins('LEFT JOIN users ON users.id = gps.user_id').where("users.ab_id = :abs_id AND users.id != 20", {:abs_id => current_user.ab_id}).group("users.name")

查詢的結果一定是用戶名,金額和日期。如果我直接從SQLlite爲此查詢它的工作,但 活動記錄查詢界面給我

[#<Gp sum_issue: 289000>, #<Gp sum_issue: 364130>, #<Gp sum_issue: 620000>] 

我怎樣才能得到一個名稱,日期,sum_issue,並顯示在我的幫手。 這樣的:

{ 
created_at: datet, 
sum_issue: sum_issue, 
name: name 
} 

回答

1

嘗試

Gp.select("date('gps'.'created_at') as date,('users'.'name') as name, SUM('gps'.'sum_issue') as sum_issue").joins('LEFT JOIN users ON users.id = gps.user_id').where("users.ab_id = :abs_id AND users.id != 20", {:abs_id => current_user.ab_id}).group("users.name").first.name 
+0

謝謝,但此查詢只返回的人的名字。我希望該查詢返回名稱,sum_issue和日期。比我想的JSON format.Like變換數據 { created_at:日期, sum_issue:sum_issue, }從這個 「通心粉」 結束 –

+0

刪除名稱。當您執行組方法時,它將返回包含所有列的對象,並在您的選擇中聲明。但在控制檯中,結果僅以聚合列顯示。如果你想將這個數組序列化爲json,可以嘗試'Gp.select(...)。joins(...)。其中(...).group(...)。to_json',你會看到你的日期,姓名和總和。 –

+0

好吧,這是工作,我怎麼可以迭代格式JSON(地圖,每個dosn't工作) –