Оператор «или» не работает в Rails Query - PullRequest
0 голосов
/ 26 сентября 2018

У меня следующая структура модели:

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 Ответ

0 голосов
/ 26 сентября 2018

Я думаю, что это должно работать:

@users = @job.location.users.where(id: @job.user_ids).or(@job.location.users.where(active: true))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...