2013-01-09 73 views
0

我有一個Log模型,在使用Activerecord和MySQL的Rails 3應用程序中有一個關聯的User模型。 A Log具有兩個屬性:名爲label的字符串和timestamp。我想找到每個Log其中有一個label包含字符串「創建」,但我只希望查詢返回一個記錄每個用戶,此外我想第一條記錄符合這些條件關於timestamp屬性。如果這太令人困惑,請告訴我,我會盡量做得更清楚。返回每個用戶查詢的第一個匹配記錄,activerecord rails 3

一個緩慢的方式來做到這可能是...

logs=[] 
User.all.each do |u| 
    logs << Log.where("label like ? and user_id = ?","%create%", u.id).order('timestamp').limit(1)[0] 
end 

回答

0

未經檢驗的,但這是總體思路:

Log.select("DISTINCT user_id, *").where("label like ?","%create%", u.id).order('timestamp').group("user_id").includes(:user)

相關問題