“或”语句在 Rails 查询中不起作用

Can*_*yer 4 ruby ruby-on-rails ruby-on-rails-5

我有以下模型结构:

class Job < ApplicationRecord
     belongs_to :location
     has_and_belongs_to_many :users
end

class Location < ApplicationRecord
     has_and_belongs_to_many :users
     has_many :jobs
end

class User < ApplicationRecord
    has_and_belongs_to_many :locations
end
Run Code Online (Sandbox Code Playgroud)

这允许我为给定位置创建作业,然后将用户关联/分配给该作业。我的用户表有一个active属性,当我尝试查询已分配给作业或状态为活动的用户时出现错误。这是我的查询:

@users = @job.location.users.where(users: { id: @job.user_ids }).or(@job.location.users.where(active: true))
Run Code Online (Sandbox Code Playgroud)

错误:

ArgumentError (Relation passed to #or must be structurally compatible. Incompatible values: [:references]):
Run Code Online (Sandbox Code Playgroud)

提前致谢。

Mar*_*ark 5

我认为这应该有效:

@users = @job.location.users.where(id: @job.user_ids).or(@job.location.users.where(active: true))
Run Code Online (Sandbox Code Playgroud)