我写了一段代码来急切地从已经加载的集合中加载一些关联:
@articles= Article.find_by_sql("SELECT * FROM articles WHERE blabla")
ActiveRecord::Associations::Preloader.new(@articles, {:comments => {:user => :permissions}}).run
我在我的 Article 类中定义了一个范围,准备好在多个级别上加载一些文章关联:
class Article << ActiveRecord::Base
[...]
scope :eager_loading_for_comments, includes(:comments => {:user => :permissions})
end
我可以在我的第一个代码中使用这个范围吗?像这样的方式:
ActiveRecord::Associations::Preloader.new(@articles, :eager_loading_for_comments).run
或者:
ActiveRecord::Associations::Preloader.new(@articles, Article.eager_loading_for_comments).run
谢谢 !