我正在尝试急切加载嵌套的多态关联。我似乎无法找到解决方案。
这是我的模型设置:
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