Ruby on rails 活动记录间歇计数

Ruby on rails 活动记录间歇计数,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个rails方法无法计算关系中的行数 我已经将这个问题简化为以下一个简单的例子 class Group < ActiveRecord::Base def self.how_many(anything) anything.count end end a = User.last.groups a.class => Group::ActiveRecord_Associations_CollectionProxy a.count => 1 b = Grou

我有一个rails方法无法计算关系中的行数

我已经将这个问题简化为以下一个简单的例子

class Group < ActiveRecord::Base
  def self.how_many(anything)
    anything.count
  end
end

a = User.last.groups
a.class
 => Group::ActiveRecord_Associations_CollectionProxy
a.count
 => 1

b = Group.where(id: 1)
b.class
 => Group::ActiveRecord_Relation
b.count
 => 1

我刚刚发现,当将a转换为数组时,根据上面的第三个示例,答案是正确的。

我很难知道您试图实现的是什么。这是一个更复杂的方法的简化版本,遇到了同样的问题。我的问题是,为什么上面的第二个示例返回的计数为零?我很难知道您试图实现的是什么。这是一个更复杂的方法的简化版本,遇到了相同的问题。我的问题是,为什么上面的第二个示例返回的计数为零?
a.how_many(b)
 => 1

b.how_many(a)
 => 0

b.how_many(a.to_a)
 => 1

a.how_many(a)
 => 1

b.how_many(b)
 => 1