作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑以下多态关系:
class Comment
belongs_to :commentable, polymorphic: true
end
class User
has_many :posts
has_many :groups
end
class Group
belongs_to :user
has_many :comments, as: :commentable
end
class Post
belongs_to :user
has_many :comments, as: :commentable
end
本质上,用户有post
评论和group
评论。我想返回用户总评论。实现这一目标的一种方法是:
posts = @user.posts.map {|c| c.comments}.flatten
groups = @user.groups.map {|c| c.comments}.flatten
但是,这是数据库密集型的。可以像这样预先加载:
Comment.includes(:commentable).where(commentable: {user_id: self.id})
# ActiveRecord::EagerLoadPolymorphicError: Cannot eagerly load the polymorphic association :commentable
最佳答案
Comment.where(commentable: @user.posts).or(Comment.where(commentable: @user.groups))
关于ruby-on-rails - 预加载(包括)多态关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45227839/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!