すでにロードされているコレクションからいくつかの関連付けを熱心にロードするコードを書きました。
@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
ありがとうございました !