2014-07-18 37 views
0

Hei there。 我的Rails應用程序出現了一個大問題。我需要選擇最後一天獲得最多追隨者的用戶。我有一個叫做關係的模型,連接關注者和關注用戶。 這裏是我的代碼:指定名稱來計算聚合Ruby on Rails

wins = Relationship.select("followed_id, count(follower_id) AS num_foll").where(:created_at => (Time.now-1.day)..Time.now).group(:followed_id).order("count(follower_id) DESC") 

我沒有選擇,因爲我要處理多個獲獎者的第一個。事實上,這一步後,我已經有了:

max_followers = wins.select("num_foll").first.num_foll 
wins.each() do |win| [...] 

但Rails的不能訪問該num_foll,扔我的錯誤:

no such column: num_foll. 

有一些約定或者一些自動分配的名稱計數聚合?我真的無法弄清楚。考慮到如果我只選擇第一個,查詢似乎工作。

在此先感謝。

+0

您是否嘗試過'max_followers = wins.first.num_foll'? –

回答

0

當你寫wins.select("num_foll")你重新分配這個選擇Relationship.select("followed_id, count(follower_id) AS num_foll")。 Yann非常正確。

+0

哦,它的工作!非常感謝。我被'選擇'這個詞誤導了! –