在我的rails应用程序中,我有Organizations和属于Organization的相关帖子。
Organization模型具有类型属性,即枚举
例如:政府,:教育,:体育等。

enum sp_type: { gov: 0, edu: 1, sports: 2 }

我可以用
Organization.edu

我可以通过Organization.edu.includes(:posts)
我想获取属于sp_typeedu组织的所有帖子,我应该执行什么查询来获取按其updated_at排序的所有帖子的列表。

最佳答案

type用于STI,因此不建议将其用作列名。
查询(获取组织):

Organization.where(sp_type: Organization.sp_types[:edu]))
            .includes(:posts)
            .where.not(posts: { id: nil })
            .order('posts.updated_at')

获取帖子的查询:
Post.joins(:organization)
    .where(organizations: { sp_type: Organization.sp_types[:edu]})
    .group('posts.id')
    .order('posts.updated_at')

关于sql - Rails:获取属于具有特定枚举属性的类别的相关记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42857099/

10-12 06:30