Ruby on rails 4 在Rails activerecord中指定include有什么不同吗

Ruby on rails 4 在Rails activerecord中指定include有什么不同吗,ruby-on-rails-4,activerecord,rails-activerecord,Ruby On Rails 4,Activerecord,Rails Activerecord,我对这种行为感到惊讶。让我们举个例子 案例1: User.includes(:organizations, :category, subscriptions: :plan).coaches User.coaches.includes(:organizations, :category, subscriptions: :plan) 所用时间:200毫秒 案例2: User.includes(:organizations, :category, subscriptions: :plan).coa

我对这种行为感到惊讶。让我们举个例子

案例1:

User.includes(:organizations, :category, subscriptions: :plan).coaches
User.coaches.includes(:organizations, :category, subscriptions: :plan)
所用时间:200毫秒

案例2:

User.includes(:organizations, :category, subscriptions: :plan).coaches
User.coaches.includes(:organizations, :category, subscriptions: :plan)
所用时间:20毫秒

这两种情况都是在没有缓存的情况下执行的


在我们指定的范围内是否存在差异?

“是否存在差异”-这是一个很容易检查的问题。只需查看服务器日志中的查询,并对它们进行比较。如果User是类名并且与coach有很多关系,我很惊讶这些调用居然能起作用