Запрос через несколько ассоциаций активной записи - PullRequest
0 голосов
/ 25 октября 2019
class User < ActiveRecord::Base
  has_many :roles
  has_many :allocations, class_name: 'Project', inverse_of: :user
end

class Role < ActiveRecord::Base
 belongs_to :user
end

class Project < ActiveRecord::Base
 belongs_to :user, inverse_of: :allocations
end

Я хочу найти тех пользователей, у которых нет выделения, а также чье start_date для размещения меньше, чем сегодня.

Мне нужно найти его из коллекции Role объектов. Я пытаюсь определить область для того же. Как объединить оба условия в одном запросе на активную запись?

Сейчас я делаю это отдельно.

Чтобы найти пользователей без выделения ресурсов, я попробовал следующее:

@roles.includes(user: :allocations).where({ allocations: { user_id: nil }})

@roles.includes(user: :allocations).group('user.id').having('count(user.allocations) = 0')

Кажется, никто из них не работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...