mongoid counter_cache

Em vez de criar vários callbacks nos modelos mongoid, use o recurso counter_cache.

class Foo
include
Mongoid::Document

has_many
:bars
field
:bars_count, type: Fixnum, default: 0
end

class Bar
include
Mongoid::Document

belongs_to
:foo, counter_cache: true
end

Simplesmente adicionar counter_cache: true na relação criará todas as coisas necessárias para você. Então:

f = Foo.create
b
= Bar.create(foo: f)

f
.bars_count #should be 1