我寫了一段代碼急於負荷已加載的收集一些協會:預緊協會與現有的範圍
@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
謝謝!
沒了,我的問題(這裏不外露,太複雜的很快,這是一個巨大的查詢與許多加入不參與範圍表。)力量我到一個find_by_sql,所以我不能直接用這個經典的方式使用範圍。 – ronnieonrails