我有一个名为Posts的模型,由User创建。每个帖子都有一个created_at属性。我想弄清楚从开始日期到结束日期的每个日期第一次发布了多少用户。
我正试图得到这样的结果:
1/1/2016: 15 posted for the first time
2/1/2016: 4 posted for the first time
3/1/2016: 0 posted for the first time
...
使用ActiveRecord高效执行此操作的最佳方法是什么? :)
答案 0 :(得分:0)
您应该做的第一件事是获取帖子created_at
的日期class Post < ActiveRecord::Base
...
def created_at_date
created_at.to_date
end
...
end
现在你在post类中有了这个方法,你现在可以访问它了
class User < ActiveRecord::Base
...
def get_first_post_created_at
posts.first. created_at_date
end
...
end
现在可以做的最后一件事就是我们的小组by get_first_post_created_at
class User < ActiveRecord::Base
...
def self.group_by_first_post_created
User.all.group_by(&:get_first_post_created_at)
end
...
end
我希望这能帮到你:)