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

这是我的模型设置:

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

我怎样才能预先加载这个嵌套的多态关联?

最佳答案

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

    class Post
      has_many :comments, as: :ownable
    end

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

这里有一个解决方法 Eager load polymorphic

10-07 12:52