ruby-on-rails - "Or"语句在 Rails 查询中不起作用

标签 ruby-on-rails ruby 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

这允许我为给定位置创建作业,然后将用户关联/分配给该作业。我的用户表有一个 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/

相关文章:

ruby-on-rails - 使用 MetaSearch 在 Rails 3 中按关联进行搜索

ruby-on-rails - ElasticSearch:更改文本的索引版本

mysql - Ruby mysql gem - 如何在查询时避免日期时间自动转换为字符串

ruby-on-rails - RubyMine 将刚刚创建的工作项目的某些行突出显示为错误

ruby - Ruby 中的排序稳定吗?

javascript - 使用 Turbolinks 5 重构内联 &lt;script&gt; 元素

ruby-on-rails - 誓言资源看门人还缺少什么?

ruby-on-rails - Phusion 乘客 + Nginx : Set Connection Timeout parameter in nginx conf

ruby-on-rails - Vips - 在 Ruby 中调整大小后在图像顶部添加文本

mysql - 使用 BCrypt 进行身份验证在使用 mysql 数据库时不保存 hashed_pa​​ssword