2014-09-19 53 views
2

滑軌:4.1.2,紅寶石:2.1.1滑軌4.1.2貪婪加載不殺死N + 1個查詢

我有一個Article類,它是commentablehas_many :comments

module Commentable 
    extend ActiveSupport::Concern 

    included do 
    has_many :comments, :as => :commentable 
    end 
end 

class Comment < ActiveRecord::Base 

    belongs_to :commentable, :polymorphic => true, :touch => true 
    belongs_to :user 

    #other codes.... 
end 

當顯示文章,我想加載所有相關的信息

@item = Article.includes(:tags, {:comments => :user}).where(id: params[:id]).first 

它並沒有預加載標籤和評論對象。

但是當我渲染comments時,評論對象和用戶對象再次被加載。

= render @item.comments 

從日誌:

development log

+0

請指定Rails版本。 – 2014-09-19 16:11:53

+0

@Зелёный更新,謝謝 – fengd 2014-09-19 16:25:10

+0

謝謝,我有同樣的問題(急切加載多態記錄)。 +1 – 2014-09-19 16:26:42

回答

0

最後,我發現Rails不能包含polymorphic協會。調用preload仍然會盡可能減少SQL語句加載相關模型,但不允許查詢相關模型。