【问题标题】:Get the n last entries from each category获取每个类别的最后 n 个条目
【发布时间】:2013-05-29 14:25:56
【问题描述】:

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

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

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

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

我正在寻找的东西可能吗?

非常感谢任何反馈。 :)

【问题讨论】:

  • 如果只显示预定数量的结果,为什么需要返回范围?你不需要分页就可以了。

标签: mysql sql ruby-on-rails activerecord


【解决方案1】:

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

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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2018-03-12
    • 2020-01-30
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    相关资源
    最近更新 更多