【发布时间】:2016-04-06 15:38:53
【问题描述】:
我有一个 Item 模型和一个 UserItem 模型。一个 Item 有很多 UserItem。
两种模型都使用 Enum:
enum status: [ :pending, :approved]
我需要查询 Item 以返回 user_items,其中 item.id != 1、item.status 已获批准且 user_items.status 处于待处理状态。我在使用正确的语法时遇到问题
Item.joins(:user_items).where( "items.id != ? and items.status = ? and user_items.status = ?", 1, ???, ???)
编写此查询的正确方法是什么?
【问题讨论】:
-
您需要
user_items.status中的任何一个待处理的项目吗?或者所有的都在哪里?没有的物品怎么办? -
对不起,我有点不清楚,我会解决这个问题。我需要返回已批准父项但 id 不等于 1 的 user_items
-
我的意思是有一个“已批准”
Item和两个UserItems,其中一个已批准,一个未批准 - 应该选择前者吗? -
@vasfed 所以所有返回的user_items必须是pending,父item必须被批准并且父item id不能等于1
标签: ruby-on-rails activerecord enums