主动记录间歇计数

时间:2015-07-26 11:02:35

标签: 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 = Group.where(id: 1)
b.class
 => Group::ActiveRecord_Relation
b.count
 => 1

通过以上启动,我得到以下结果:

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

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

0 个答案:

没有答案