Rails:4.1.2,Ruby:2.1.1
我有Article
班,commentable
和has_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
来自日志:
答案 0 :(得分:0)
最后,我发现Rails
不能包含polymorphic
个关联。调用preload
仍会在尽可能少的SQL语句中加载相关模型,但不允许查询相关模型。