我有模型User
,Status
和Like
。
其中:
User
有很多Statuses
Status
有很多Likes
如何获得用户具有所有状态的count
likes
?
例如,用户有2种状态,每种状态都有10个喜欢。我怎样才能获得总数? (20likes)?
答案 0 :(得分:3)
Like.joins(status: :user).where(status: { user: user }).count
另一种选择是添加
has_many :likes, through: :statuses
在User
模型上。然后,您可以通过以下方式访问用户的状态:
user.likes
并计算:
user.likes.count
您可能希望将关联重命名为更具描述性的内容,因为这实际上并非用户的喜欢。查看has_many
的rails文档,了解如何执行此操作。