1

我写了一段代码来急切地从已经加载的集合中加载一些关联:

@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

谢谢 !

4

2 回答 2

0

为什么不像其他人那样调用范围,例如

@articles = Article.eager_loading_for_comments

?

于 2012-11-28T16:27:39.610 回答
0

如何将 where 链接到范围:

Article.eager_loading_for_comments.where("blah blah blah")
于 2012-11-28T16:28:02.310 回答