0

我有一个包含博客、博客条目和类别的系统。类别有许多博客,BlogEntry 属于一个博客。

我有一个显示最新博客条目的首页。我想获得每个类别的最新(比如 5 个最新)博客条目,以便在任何给定时间首页上的类别份额均等(时尚和“粉红色博客”发布了很多。每天两次在最低限度!)

它是一个 Rails 应用程序并使用 kaminari 进行分页,所以我显然更喜欢支持 kaminari 的解决方案(返回一个 activerecord::relation)。

我正在寻找这样的东西:Retrieve 2 last posts for each category。但是 rails/ActiveRecord 是特别的。我可能会从该答案中获取 sql 并使其适合我的数据库方案,但我认为这只会返回一个数组而不是 ActiveRecord::Relation。

我正在寻找的东西是否可能?

非常感谢任何反馈。:)

4

1 回答 1

0

您可以使用命名范围根据发布时间过滤博客。

scope :recent, lambda { where('created_at >= ?', Time.current) }
scope :recent, lambda { order("created_at DESC") }
scope :recent, conditions: ["category = "blog" and created_at < ?", Time.now]
于 2013-05-29T14:37:21.400 回答