ActiveRecordオブジェクトが作成されるときに呼び出されるコールバックと検証はどのような順序であるのか疑問に思いました。
次のようなカスタム検証とコールバックがあるとしましょう。
validates :reference_code, :if => :reference_code, :on => :create
before_create :assign_reference
どちらが最初に実行されますか?コールバックが最初に発生する必要があります。そうしないと、検証が失敗する可能性があります。