我正在对我的产品进行静力学计算.用户已经执行了很多操作,比如发布 comments .我希望能够向他们展示过go 一个月每周或过go 一年每月发表的 comments 数量.

activerecord有没有办法这样分组?我最好的方法是手动完成这项工作——根据我自己的标准对记录进行迭代求和吗?

class User < ActiveRecord::Base
  has_many :comments
end

class Comments < ActiveRecord::Base
  belongs_to :user
end

@user.comments(:all).map {|c| ...do my calculations here...}

还是有更好的办法?

谢谢

推荐答案

在这种情况下,对我来说,最好的解决方案是使用直接SQL,或者使用Ruby group_by函数:

@user.all.group_by{ |u| u.created_at.beginning_of_month }

Ruby-on-rails相关问答推荐

使用Hotwire/Turbo的Rails在链接悬停时获取请求

对Rails进行枚举不允许空值

Rails TurboStream:可以向元素动态添加一个css类吗?

Sidekiq with Rails - 控制台与 rake 任务中的不同 Sidekiq 实例

正确更新其他列的更新列

Rails 5:如何从数据库中删除列?

Rails 路由到唯一索引

Rails 发现获取 ActiveRecord::RecordNotFound

如果 URL 不存在,请将 http(s) 添加到 URL?

Rails cron 与时俱进,设置环境

耙路由错误缺少:路由定义上的操作键

RSpec 设置会话对象

设计和强大的参数

从 Rails 模型内部访问翻译文件 (i18n)

关闭 Firefox 中文本字段的自动完成功能

Rails 5.1:未知 firstpos:NilClass - 问题重新加载应用程序

Rails SQL 正则表达式

从 Rails 中的控制器调用辅助方法时出现未定义的方法

如何跳过失败的迁移? (耙分贝:迁移)

我应该在 Heroku Cedar 上使用薄的还是独角兽