我有以下模型结构:
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
这允许我为给定位置创建作业,然后将用户关联/分配给该作业。我的用户表有一个
active
属性,当我尝试查询已分配给作业或状态为事件的用户时出现错误。这是我的查询:@users = @job.location.users.where(users: { id: @job.user_ids }).or(@job.location.users.where(active: true))
错误:
ArgumentError (Relation passed to #or must be structurally compatible. Incompatible values: [:references]):
提前致谢。
最佳答案
我认为这应该有效:
@users = @job.location.users.where(id: @job.user_ids).or(@job.location.users.where(active: true))
关于ruby-on-rails - "Or"语句在 Rails 查询中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52519236/