首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails中计算“有记录的天数”?

问如何在Rails中计算“有记录的天数”?
EN

Stack Overflow用户
提问于 2012-06-01 10:10:10
回答 1查看 234关注 0票数 2

Rails为新记录添加和填充created_at列。

如何使用来计算在指定时间范围内有记录的天数?(注:统计天数,不统计记录)

例如,假设我有一个Post模型,我如何计算去年有多少天有Post?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-01 10:21:26

既然你要的是ruby方法,这里就是:

代码语言:javascript
复制
Post.where('created_at >= ?', 1.year.ago).map { |p| p.created_at.beginning_of_day }.uniq.size

更新

您可以在您的Post模型中添加以下内容

代码语言:javascript
复制
def self.number_of_days
  where('created_at >= ?', 1.year.ago).map { |p| p.created_at.beginning_of_day }.uniq.size
end

然后在你的控制器中你可以做像这样的事情

代码语言:javascript
复制
@user.posts.number_of_days

这里有一种更有效的方法,可以将大部分工作委托给数据库(MySQL,不确定它是否适用于其他数据库):

代码语言:javascript
复制
Post.where('created_at >= ?', 1.year.ago).group('DATE(created_at)').length
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10843577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档