我编写了一段代码,以便从已加载的集合中加载一些关联:
@articles= Article.find_by_sql("SELECT * FROM articles WHERE blabla")
ActiveRecord::Associations::Preloader.new(@articles, {:comments => {:user => :permissions}}).run
我的文章类中定义了一个范围,准备在几个级别上加载一些文章关联:
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
谢谢!
答案 0 :(得分:0)
为什么不像其他任何人一样调用范围,例如
@articles = Article.eager_loading_for_comments
答案 1 :(得分:0)
如何将范围链接到范围:
Article.eager_loading_for_comments.where("blah blah blah")