Ruby on rails 在RubyonRails中随时间跟踪数据库
更新 我最终得到了一个专用的统计模型和表,它使用。请看我自己的答案以了解更多细节 原始问题 在我的RubyonRails应用程序中,我想在我的管理页面中制作一个图表,显示一段时间内我网站上的用户数量 图表应显示去年所有日期的用户数量 如果出现新用户,曲线将上升,如果用户被删除,曲线将下降 这就是我想要的JSON结果Ruby on rails 在RubyonRails中随时间跟踪数据库,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,更新 我最终得到了一个专用的统计模型和表,它使用。请看我自己的答案以了解更多细节 原始问题 在我的RubyonRails应用程序中,我想在我的管理页面中制作一个图表,显示一段时间内我网站上的用户数量 图表应显示去年所有日期的用户数量 如果出现新用户,曲线将上升,如果用户被删除,曲线将下降 这就是我想要的JSON结果 [ { "date": "23-01-2013", "users": 3201 }, { "date": "2
[
{
"date": "23-01-2013",
"users": 3201
},
{
"date": "24-01-2013",
"users": 3451
},
{
"date": "25-01-2013",
"users": 4351
},
{
"date": "26-01-2013",
"users": 3950
},
{
"date": "27-01-2013",
"users": 4150
}
]
我已经考虑过制作一个统计模型,并在我的用户模型中添加before_create和before_destroy过滤器来更新统计模型
有没有更好的方法,也许有一颗宝石可以做到这一点?我想我还没有找到解决办法,因为我不知道这叫什么 统计模型是一种可能性。如果您不想添加额外的模型,您可以进行适当的SQL查询,例如列出MySQL中每年可以使用的新用户数
SELECT Year(created_at) as 'year', COUNT(id) as 'users'
FROM users GROUP BY Year(created_at);
# or
SELECT DATE_FORMAT(created_at, '%Y') as 'year', COUNT(id) as 'users'
FROM users
GROUP BY DATE_FORMAT(created_at, '%Y');
每个月使用MySQL的新用户数量也将类似
统计模型是一种可能性。如果您不想添加额外的模型,您可以进行适当的SQL查询,例如列出MySQL中每年可以使用的新用户数
SELECT Year(created_at) as 'year', COUNT(id) as 'users'
FROM users GROUP BY Year(created_at);
# or
SELECT DATE_FORMAT(created_at, '%Y') as 'year', COUNT(id) as 'users'
FROM users
GROUP BY DATE_FORMAT(created_at, '%Y');
每个月使用MySQL的新用户数量也将类似
解决方案是在数据库中创建一个统计模型和表。我每天都在统计模型上运行write_stats方法。它可能有点重,但它给了我大量的数据 这是这个项目的schedule.rb
set :output, "#{path}/log/cron.log"
every :day, at: "11:58 PM" do
runner "Statistics.write_count"
end
这是统计模型
class Statistics < ActiveRecord::Base
def self.write_count
stats = Statistics.new
stats.users = User.count
stats.save!
end
end
解决方案是在数据库中创建一个统计模型和表。我每天都在统计模型上运行write_stats方法。它可能有点重,但它给了我大量的数据 这是这个项目的schedule.rb
set :output, "#{path}/log/cron.log"
every :day, at: "11:58 PM" do
runner "Statistics.write_count"
end
这是统计模型
class Statistics < ActiveRecord::Base
def self.write_count
stats = Statistics.new
stats.users = User.count
stats.save!
end
end
谢谢我已经有这个了。这将告诉我在几个给定的时间我们有多少新用户。但是,我想得到在几个给定时间的用户总数。所以,我需要跟踪新用户以及删除的用户。谢谢!我已经有这个了。这将告诉我在几个给定的时间我们有多少新用户。但是,我想得到在几个给定时间的用户总数。因此,我需要跟踪新用户以及删除的用户。