Skip to content

グループごとのアクセス数集計

Yuichi Takeuchi edited this page May 29, 2019 · 1 revision
groups = Group.active.sort_by { |group| Project.published.where(owner: group).inject(0) { |count, project| project.project_access_logs.where("created_at > ?", 1.month.ago).count + count } }.reverse

since = 1.month.ago

groups.each_with_index { |group, index|
  projects = Project.active.published.exclude_blacklisted.where(owner: group)
  pairs = projects.map { |project| [project, project.project_access_logs.where("project_access_logs.created_at > ?", since).count] }.sort_by { |pair| pair[1] * -1 }

  puts "#{index+1}. #{group.name} (#{pairs.map {|pair| pair[1]}.sum })"
  pairs.each do |pair|
    project = pair[0]
    puts "#{project.owner.name}/#{project.name}\t(#{pair[1]})"
  end

  puts ""
}; nil
Clone this wiki locally