获取每个类别的最后一个条目

时间:2013-05-29 14:25:56

标签: mysql sql ruby-on-rails activerecord

我有一个包含Blog,BlogEntry和Category的系统。类别有很多博客,BlogEntry属于博客。

我有一个显示最新博客条目的首页。我想获得每个类别的最新(比如5个最新)博客条目,因此在任何给定时间头版都有相同比例的分类(时尚和“粉红色的气球”发布很多。每天两次在最小!)

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

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

我正在寻找甚至可能吗?

非常感谢任何反馈。 :)

1 个答案:

答案 0 :(得分: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]