class Visitor has_many :sessions end class Session belongs_to :visitor belongs_to :site end class Site has_many :sessions end
我希望能够每天获得一个网站的访问者数量.由于访问者不是直接与某个网站相关联,而是会话,我需要获取特定网站的所有会话,按天分组,然后按visitor_id分组.这是一些示例数据(按created_at ASC排序):
visitor_id site_id created_at 6 3 2011-09-27 6 3 2011-09-27 7 3 2011-09-27 2 3 2011-09-29 7 3 2011-09-29
理想情况下,我应该看到在09/27有2个独特的访客,并在09/29还有2个独特的访客.我试过这个:
Session.group('date(created_at)').group('visitor_id').size
但我得到了这个(这是不正确的):
# => {Tue,27 Sep 2011=>3,Thu,29 Sep 2011=>2}
多谢你们!
解决方法
@counts = Session.group('date(created_at),visitor_id').count @counts.each do |(date,visitor),count| puts "#{visitor.name} visted the site #{count} times on #{date}" end