如何获得关联模型数据?

时间:2014-08-19 23:14:21

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

我有模型UserStatusLike。 其中:

User有很多Statuses

Status有很多Likes

如何获得用户具有所有状态的count likes? 例如,用户有2种状态,每种状态都有10个喜欢。我怎样才能获得总数? (20likes)?

1 个答案:

答案 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文档,了解如何执行此操作。