Rails为新记录添加和填充created_at列。
如何使用来计算在指定时间范围内有记录的天数?(注:统计天数,不统计记录)
例如,假设我有一个Post模型,我如何计算去年有多少天有Post?
发布于 2012-06-01 10:21:26
既然你要的是ruby方法,这里就是:
Post.where('created_at >= ?', 1.year.ago).map { |p| p.created_at.beginning_of_day }.uniq.size更新
您可以在您的Post模型中添加以下内容
def self.number_of_days
where('created_at >= ?', 1.year.ago).map { |p| p.created_at.beginning_of_day }.uniq.size
end然后在你的控制器中你可以做像这样的事情
@user.posts.number_of_days这里有一种更有效的方法,可以将大部分工作委托给数据库(MySQL,不确定它是否适用于其他数据库):
Post.where('created_at >= ?', 1.year.ago).group('DATE(created_at)').lengthhttps://stackoverflow.com/questions/10843577
复制相似问题