Ruby on rails 获取RubyonRails中前一天、前一周或前一个月的用户数
在我的ruby on rails应用程序中,我想获得在我的应用程序中前一天、前一周和前一个月创建和删除帐户的用户数。基本上,我想显示在一天内创建帐户的用户Ruby on rails 获取RubyonRails中前一天、前一周或前一个月的用户数,ruby-on-rails,Ruby On Rails,在我的ruby on rails应用程序中,我想获得在我的应用程序中前一天、前一周和前一个月创建和删除帐户的用户数。基本上,我想显示在一天内创建帐户的用户(表示从当前小时到前一个剩余小时),一周(指从当天到前几天)和一个月(指从当天到前几天) 我正在尝试使用下面的方法: # Controller @users = User.all(:conditions => ["created_at >= ?", Date.today.at_beginning_of_month]) # View
(表示从当前小时到前一个剩余小时)
,一周(指从当天到前几天)
和一个月(指从当天到前几天)
我正在尝试使用下面的方法:
# Controller
@users = User.all(:conditions => ["created_at >= ?", Date.today.at_beginning_of_month])
# View
Date.today.at_beginning_of_month.upto(Date.today).each do |date|
<%= date %>: <%= @users.select{|u| u.created_at == date }.size %>
end
#控制器
@users=User.all(:条件=>[“创建时间>=?”,日期。今天。在月初])
#看法
日期。今天。在月初。截至(日期。今天)。每个日期|
:
结束
但它让我知道了过去一个月每天的用户数。我会尝试以下方法: 例如,如果要选择在最近一小时内创建的用户:
@date_start = DateTime.now
@date_end = @date_start - 1.hour
@users = User.where(:created_at => @date_end..@date_start)
让我们先这样说:
@date = DateTime.now - 10.days
@users = User.all(:conditions => ['created_at > ?', @date]) // fetch all users created within last 10 days until now
然后,按日期将其分组:
@days = @users.group_by {|user| user.created_at.to_date }
然后,您应该对这些分组的日期进行迭代并打印它们:
@days.each do |day, users|
<%= day %>: <%= users.size %>
end
@days.each do| day,用户|
:
结束
但是我没有具体的日期和时间,我想要这一天,从当前时间(time.now)
到24小时结束,同样是一周,从当前时间(time.now)
到一周结束,同样是一个月,从当前时间(time.now)
到一个月结束的地方。我想得到count,所以我添加了.count
如下@users=User.where(:created\u at=>@date\u end..@date\u start).count
。但它不会给我任何结果。它不会给我任何错误,但在我的查看页面中,在这一行,过去24小时内注册的用户数:
,它不会给我显示任何计数值。你能简单地在控制台中用:put@users
打印出来吗?结果是什么?你在过去一小时内创建了用户吗?它正在工作。T汉克斯,请告诉我,我怎样才能在1周
和1个月
内做到这一点。