2013-05-31 106 views
0

我有有一些列的定位模型存在:標題,地址,城市,國家等..得到位置示範城市名單多少位置爲每個城市

我想根據我的數據庫中的位置顯示所有城市的列表。然後,我試圖找出每個城市有多少個地點。

我希望能輸出像

Tampa(10) 
Denver(20) 
Atlanta(15) 
... and so on 

目前得到數據庫的城市,我用下面的代碼清單:

cities = Location.uniq.pluck(:city) 

技術上我可以遍歷所有城市和COUNT(*)在哪裏城市=「城市名」......但這似乎是一個非常低效的方式來做到這一點。

有沒有更好的方法來實現這個目標?

+0

這是對分面導航的哈希? –

+0

@MarkThomas這可能是,我仍在通過創意。 – Roeland

回答

1
Location.group(:city).count 

這會給你城市爲鍵和值作爲計數

1

你應該使用GROUP BY insted的

SELECT city, COUNT(*) FROM locations GROUP BY city; 
+0

我對Rails比較新,有沒有辦法通過這個ActiveRecord來完成。 – Roeland

+0

我只知道SQL,但看起來像Vimsha有上述查詢的Rails版本 –

+1

是的,你是對的,你的SQL是完美的。我與rails的主要戰鬥是將SQL轉換爲ActiveRecord :) – Roeland

相關問題