ruby-on-rails - 如何获取相关模型数据?

标签 ruby-on-rails ruby ruby-on-rails-4 has-many

我有模型UserStatusLike。 地点:

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/

相关文章:

ruby-on-rails - Rails 外键违规删除具有依赖销毁的 has_many 关系

ruby-on-rails - rails 4 和活跃的管理员

ruby-on-rails - Rake 测试 - 创建 YAML 错误,我该如何解决?

ruby - 从 Ruby : capturing the output while displaying the output? 运行 shell 命令

ruby-on-rails - Rails 4 - Pundit - 如何编写范围

ruby-on-rails-4 - 如何强制另一个用户退出设备?

ruby-on-rails - PostgreSQL 和排序,在 Heroku 设置语言环境

ruby - IO 对象的约定或经验法则?

ruby-on-rails - ActionMailer 在 Rails 4.2 中使用哪个 ActiveJob 队列?

ruby-on-rails - 将 Rails 3.2 升级到 Rails 4.2 获得 401 未授权