4

我正在尝试加载嵌套的多态关联。我似乎找不到解决方案。

这是我的模型设置:

class Post
  has_many :comments
end

class Comment
  belongs_to :ownable, polymorphic: true
end

class User
  has_many :comments, as: :ownable
end

这就是我想要做的:

Post.includes(comments: :ownable).to_a

但它抛出了这个错误:

ActiveRecord::EagerLoadPolymorphicError - Can not eagerly load the polymorphic association :ownable

我怎样才能急切地加载这个嵌套的多态关联?

4

1 回答 1

2

首先你的帖子 has_many 评论也应该设置为 :as => ownable

    class Post
      has_many :comments, as: :ownable
    end

即使在更改此设置后,您仍然会收到相同的错误,因为 rails 找不到可拥有的表。

这里发布了一个解决方法Eager load polymorphic

于 2014-01-03T06:35:33.337 回答