如果之前的验证中有错误,则调用before_create吗?

时间:2012-01-11 00:29:16

标签: ruby-on-rails ruby

我能够找到回调被启动的顺序here,但它没有说明它是否是动态的(如果是self.errors.any?停止回调链)。有没有人知道只有在所有验证通过后才调用before_create?或者有任何链接深入了解这个过程。

1 个答案:

答案 0 :(得分:2)

您最初的预感是正确的。只有在验证通过时才会调用before_create。通过查看回调生命周期,可以在原始链接中轻松观察到这一点:

before_validation
.  <----- validations happen here
after_validation
before_save
before_create
around_create <--- save happens in here
after_create
after_save

如果在任何时候回调,验证或保存失败,则不会运行验证/保存周期的后续部分。