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