Como organizar retornos de chamada complexos no Rails?

Eu tenho um aplicativo Rails, que usa muito callbacks .. de modo que eu tenho algumas funções sendo chamadas: after_create e: after_commit em vários modelos.

Eu me pergunto se o jeito que estou fazendo agora é o melhor.

Basicamente eu tenho o seguinte cenário:

Class Parent < ActiveRecord::Base

has_many :children


after_create :first_function 
after_commit :last_function

    def first_function
        if !self.processed?
            self.children.create(:name => "Richard The Lion Heart")
            self.processed = true
            self.save!
        end
    end

    def last_function
        if self.processed?
            if !self.processing?
                self.process
                                    self.save!
                self.processing = true
                self.save!
            end
        end
    end

end

Assim, você pode ver que a coisa toda depende de algumas verificações booleanas duplas estranhas, porque senão a segunda_função é chamada toda vez que o modelo é atualizado e pode ser atualizado pela própria função e assim a função é chamada repetidamente.

No geral, isso me leva ao caso em que tenho que introduzir uma nova verificação booleana para cada retorno de chamada ser disparado. Funciona, mas não vejo isso como elegante. o que estou perdendo?

questionAnswers(1)

yourAnswerToTheQuestion