代码之家  ›  专栏  ›  技术社区  ›  Cannon Moyer

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

  •  0
  • Cannon Moyer  · 技术社区  · 6 年前

    我有以下模型结构:

    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]):
    

    提前谢谢。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Mark    6 年前

    我认为这应该管用:

    @users = @job.location.users.where(id: @job.user_ids).or(@job.location.users.where(active: true))