[英]Eager Load indirect associations Rails
協會如下:
#app/models/pet.rb
class Pet < ActiveRecord::Base
belongs_to :pet_store
end
#app/models/pet_store.rb
class PetStore < ActiveRecord::Base
has_many :pets, dependent: :destroy
has_many :employees, dependent: :destroy
end
#app/models/employee.rb
class Employee < ActiveRecord::Base
belongs_to :pet_store
end
我想做類似的事情會導致N + 1
錯誤:
@pets = Pet.where(species: "Dog").includes(:pet_store)
@pets.each do |pet|
pet.pet_store.employees.each do |employee|
puts employee.name
end
end
這會導致N + 1錯誤,因為必須為每個employee
進行查詢。 我想eager load
間接關聯employees
。 但是,我不能簡單地includes(:employees)
因為pet
與employees
沒有直接聯系。 如何才能做到這一點?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.