避免N + 1查询访问父母的父母。那是祖父母

时间:2016-06-27 02:20:28

标签: ruby-on-rails

模型hirerachy struture是城市HAS_MANY机场,机场HAS_MANY航班

如何在这种雇佣结构中避免N + 1查询。

我可以通过

修复机场的N + 1查询
@flights = Flight.includes(:to_airport, :from_airport, :airline).all

但仍有N + 1查询用于访问城市

API,jbuilder

json.array!(@flights) do |flight|
  json.from_airport flight.from
  json.to_airport flight.to
  json.from_city flight.from_airport.city.name
  json.to_city flight.to_airport.city.name
end

1 个答案:

答案 0 :(得分:0)

嗯,也许你也可以加载嵌套关联?

Flight.includes(to_airport: :city, :airline)