2013-08-28 24 views
5
a = Session.where(:date_at => date_from..date_to). 
      order("date_at"). 
      count("DISTINCT(user_id)", 
        :group => "date(convert_tz(date_at, 'UTC', 'Europe/Warsaw'))") 

Bunu Rails 4'de nasıl yazabilirim?Raylardaki izinsiz sayım 4

Bu hata oluşturur:

DEPRECATION WARNING: Relation#calculate with finder options is deprecated. Please build a scope and then call calculate on it instead. (called from block (2 levels) in <top (required)> at /Users/xxx/Desktop/DEPLOY/d1_mysql/d1/app/admin/user.rb:11) 
DEPRECATION WARNING: The :distinct option for `Relation#count` is deprecated. Please use `Relation#distinct` instead. (eg. `relation.distinct.count`). (called from block (2 levels) in <top (required)> at /Users/xxx/Desktop/DEPLOY/d1_mysql/d1/app/admin/user.rb:11) 

cevap

8

Daha raylar 4 yolu. .

Session.where(date_at: date_from..date_to).select('distinct user_id') 
     .group("date(convert_tz(date_at, 'UTC', 'Europe/Warsaw'))").count 
+0

Teşekkürler. Her iki cevap doğru – Wordica

2

Bu işle deneyebilirsiniz:

Session.where(:date_at => date_from..date_to) 
     .select('user_id').distinct 
     .group("date(convert_tz(date_at, 'UTC', 'Europe/Warsaw'))") 
     .count 
+1

@Michael "bulucu seçenekleriyle hesapla" kullanımdan kaldırılır "saymazsınız" ("...",: group => "...") '. Bunun yerine '.group (" ... "). Count' kullanmalısınız. İkinci kullanımdan kaldırma uyarısı açıktır. Yapman gerekeni açıkça söylüyor. – Mischa