«включает» не работает на отношение рельсов с фильтром - PullRequest
0 голосов
/ 04 октября 2018

У меня есть модель User с некоторыми отношениями:

class User < ApplicationRecord
  has_many :hierarchies
  has_one :hierarchy, -> { where(end_at: nil) }
  has_one :boss, through: :hierarchy
  has_one :department, through: :hierarchy
end

Я пытаюсь использовать эти данные в представлении:

@users = current_team.active_users.
order(director: :desc, leader: :desc, active: :desc, nickname: :asc).
includes(:department, :boss, :hierarchy)

Когда я перебираю каждого пользователя, user.department и user.boss работает нормально, без новых запросов, но иерархия - нет.Каждый раз, когда я пытаюсь получить доступ к user.hierarchy, он вызывает новый запрос:

  CACHE Hierarchy Load (0.0ms)  SELECT  "hierarchies".* FROM "hierarchies" WHERE "hierarchies"."user_id" = $1 AND "hierarchies"."end_at" IS NULL ORDER BY "hierarchies"."id" DESC LIMIT $2  [["user_id", 115], ["LIMIT", 1]]

Этот ответ (https://stackoverflow.com/a/34865972/5077874) дал мне представление о том, что не так, where filter в отношении, ноЯ не мог заставить это работать.

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