mirror of
https://github.com/discourse/discourse.git
synced 2024-11-24 15:49:55 +08:00
0d01c33482
All models are now using ActiveModel::ForbiddenAttributesProtection, which shifts the responsibility for parameter whitelisting for mass-assignments from the model to the controller. attr_accessible has been disabled and removed as this functionality replaces that. The require_parameters method in the ApplicationController has been removed in favor of strong_parameters' #require method. It is important to note that there is still some refactoring required to get all parameters to pass through #require and #permit so that we can guarantee that parameter values are scalar. Currently strong_parameters, in most cases, is only being utilized to require parameters and to whitelist the few places that do mass-assignments.
35 lines
786 B
Ruby
35 lines
786 B
Ruby
class UserVisit < ActiveRecord::Base
|
|
|
|
# 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
|
|
end
|
|
|
|
# == 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
|
|
#
|
|
|