使用join来计算查询

时间:2018-04-03 21:08:20

标签: ruby-on-rails activerecord

我有这段代码:

User.joins(:pets).select('users.*, COUNT(pets.id) as pets_count').group('user.id')

返回User::ActiveRecord_Relation。但是我无法获取结果集的pets_count列中的值。

如何访问该值?或者我可以使用什么来获得加入的计数?

2 个答案:

答案 0 :(得分:1)

如果您正在查看控制台,您将只看到用户的属性,但在迭代后您可以在其上调用'pets_count'。

对于Ex: -

users = User.joins(:pets).select('users.*, COUNT(pets.id) as pets_count').group('user.id')

users.each do |user|
  user.pets_count
end

答案 1 :(得分:1)

中的用户应为用户

@users = User.joins(:pets).select('users.*, COUNT(pets.id) as pets_count').group('users.id')

当您拨打@users.first.pets_count

时,您可以毫无问题地获取 pets_count