Я пытаюсь запросить на ActiveRecord нескольких вложенных нетерпеливые нагруженные ассоциации с условиями, как так:Задание условия на Multiple Вложенные Нетерпеливый Loaded ассоциации
user.books.includes(slot: [room: :school]).where("books.slot.room.school.id = 1")
Очевидно, что этот вопрос не так, но в основном то, что я пытаюсь досягаемость - это отношение пользовательских книг для определенной школы.
Моя модель структура:
class User < ActiveRecord::Base
has_many :books
has_many :slots, through: :books
has_many :rooms, through: :slots
has_many :schools
end
class Book < ActiveRecord::Base
belongs_to :user
belongs_to :slot
end
class Slot < ActiveRecord::Base
has_many :books
belongs_to :room
end
class Room < ActiveRecord::Base
belongs_to :school
has_many :slots
end
class School < ActiveRecord::Base
has_many :users
has_many :rooms
has_many :slots, through: :rooms
has_many :books, through: :slots
end
Любые идеи? Заранее спасибо.
Привет Kkulikovskis, извините за задержку, но это на самом деле не работал, как я получаю следующую ошибку: PG :: UndefinedTable: ERROR : отсутствует запись FROM-clause для таблицы ... что это сработало для меня: u.books.joins (slot: [room:: school]). где (школы: {id: 1}). Это имеет смысл для вас? –
да, извините. Мой ответ не имеет смысла, поскольку, если вы присоедините несколько таблиц, вы можете получить к ним доступ непосредственно в 'where'. Я обновил свой ответ – Kkulikovskis