Ruby on rails Rails正在加载所有查找

Ruby on rails Rails正在加载所有查找,ruby-on-rails,eager-loading,Ruby On Rails,Eager Loading,好的,我一直在玩一些迫不及待地加载的东西,有两个模型,比如: Class Recipe < ActiveRecord::Base belongs_to :cookbook has_many :recipetags end 但我还想做的是,每当我打开一个菜谱,让它自动拉入所有它渴望的关联——基本上我想做: rec = Recipe.find(123) 并让它快速加载:在这种情况下,也加载RecipeTag 我意识到这似乎微不足道,但事实上,我在配方上有大约4-5个关联

好的,我一直在玩一些迫不及待地加载的东西,有两个模型,比如:

Class Recipe < ActiveRecord::Base
    belongs_to :cookbook
    has_many   :recipetags
end
但我还想做的是,每当我打开一个菜谱,让它自动拉入所有它渴望的关联——基本上我想做:

rec = Recipe.find(123)
并让它快速加载:在这种情况下,也加载RecipeTag


我意识到这似乎微不足道,但事实上,我在配方上有大约4-5个关联,我只是不在这里展示它们,而不是显式地做:在每次查找调用中包含我希望它发生的事情。我假设我可以覆盖Recipe.find,以便在配方模型中执行此操作,但我想知道是否有更干净的方法……

您应该能够使用命名范围执行此操作,但我知道这可能存在许多错误,希望它们现在都已修复。

我一直在使用默认范围在所选型号上执行此操作,我总是希望加载:

class Post < ActiveRecord::Base
  has_many :comments
  default_scope :include => :comments, :order => ["title ASC"]
  ...
end
class Post:comments,:order=>[“title ASC”]
...
结束

这看起来不错-尽管它看起来只在2.3+版本中可用,这给应用程序带来了一些其他问题。我会看看是否能让2.3.2正常工作并测试它。
rec = Recipe.find(123)
class Post < ActiveRecord::Base
  has_many :comments
  default_scope :include => :comments, :order => ["title ASC"]
  ...
end