【发布时间】:2020-07-23 18:00:06
【问题描述】:
假设我有一个名为 post 的模型,它有一个名为 post_type 的 enum 可以是
admin、public 或 user
#app/models/post.rb
class Post < ApplicationRecord
enum post_type: [ :admin, :public, :user ]
end
如何从每个类别中选择 5 个最后创建的帖子?
我想不出除此之外的任何其他解决方案:
PER_GROUP = 5
admin_posts = Post.admin.order(created_at: :desc).limit(PER_GROUP)
user_posts = Post.user.order(created_at: :desc).limit(PER_GROUP)
public_posts = Post.public.order(created_at: :desc).limit(PER_GROUP)
有什么方法可以以所需的方式从单个查询中获取所有行到数据库。
堆栈
RAILS : 6
PostgresSQL: 9.4
【问题讨论】:
标签: ruby-on-rails postgresql activerecord