Qual é a ordem dos retornos de chamada e validações do ActiveRecord?

Eu queria saber em que ordem são chamadas e validações chamadas quando um objeto ActiveRecord é criado.

Digamos que eu tenha algumas validações e retornos de chamada personalizados, como os seguintes:

validates :reference_code, :if => :reference_code, :on => :create
before_create :assign_reference

qual deles será executado primeiro? O retorno de chamada precisa acontecer primeiro ou então a validação pode falhar.

questionAnswers(1)

yourAnswerToTheQuestion