给定具有关系的List
模型:
has_many :list_group_memberships, dependent: :destroy
has_many :groups, through: :list_group_memberships
has_many :users, -> { unscope(:order).uniq }, through: :groups, source: :users
我的范围需要像这样工作:
includes(:users).where(recipient: user, secret: false).or(where(users: { id: user }))
Recipient
和secret
是List
模型的属性。
我使用where-or gem(Rails 5 AR or
范围的后端)。
收到的错误是:
ArgumentError: Relation passed to #or must be structurally compatible
这种查询是否可以使用Rails'语法?
答案 0 :(得分:0)
我假设用户是变量。
includes(:users).where("(recipient = ? AND secret = ?) OR users.id = ?", user, false, user)