我有模型User
、Status
和Like
。
地点:
User
有很多Statuses
Status
有很多Likes
我怎样才能得到一个用户所有状态的喜欢
的计数
?
例如,用户有 2 个状态,每个状态都有 10 个赞。我怎样才能得到总数? (20 个赞)?
最佳答案
Like.joins(status: :user).where(status: { user: user }).count
另一种选择是添加
has_many :likes, through: :statuses
在您的 User
模型上。然后你可以访问用户的状态喜欢:
user.likes
并计算它们:
user.likes.count
您可能希望将关联重命名为更具描述性的名称,因为这实际上并不是用户的喜好。查看 has_many
的 Rails 文档,了解如何执行此操作。
关于ruby-on-rails - 如何获取相关模型数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25394437/