discourse/app/models/user_visit.rb

35 lines
825 B
Ruby
Raw Normal View History

2013-05-24 10:35:14 +08:00
# == Schema Information
#
# Table name: user_visits
#
# id :integer not null, primary key
# user_id :integer not null
# visited_at :date not null
#
# Indexes
#
# index_user_visits_on_user_id_and_visited_at (user_id,visited_at) UNIQUE
#
2013-02-06 03:16:51 +08:00
class UserVisit < ActiveRecord::Base
attr_accessible :visited_at, :user_id
# A list of visits in the last month by day
def self.by_day(sinceDaysAgo=30)
where("visited_at >= ?", sinceDaysAgo.days.ago).group(:visited_at).order(:visited_at).count
end
def self.ensure_consistency!
exec_sql <<SQL
UPDATE users u set days_visited =
(
SELECT COUNT(*) FROM user_visits v WHERE v.user_id = u.id
)
WHERE days_visited <>
(
SELECT COUNT(*) FROM user_visits v WHERE v.user_id = u.id
)
SQL
end
2013-02-06 03:16:51 +08:00
end