gpt4 book ai didi

ruby-on-rails - ActiveRecord 回调和验证的顺序是什么?

转载 作者:行者123 更新时间:2023-12-03 01:10:15 25 4
gpt4 key购买 nike

我想知道创建 ActiveRecord 对象时调用回调和验证的顺序是什么。

假设我有一些自定义验证和回调,如下所示:

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

哪个会先运行?回调需要首先发生,否则验证可能会失败。

最佳答案

最新版本 Rails 的列表的最新版本可以在 ActiveRecord::Callbacks documentation 中找到。 。 Rails 4、3 和 2 的列表如下。

rails 4

此列表的最新版本可以在 Rails 4 Guides 中找到。 .

创建对象

  • before_validation
  • after_validation
  • 保存前
  • around_save
  • before_create
  • around_create
  • after_create
  • 保存后
  • after_commit/after_rollback

更新对象

  • before_validation
  • after_validation
  • 保存前
  • around_save
  • 更新前
  • around_update
  • after_update
  • 保存后
  • after_commit/after_rollback

销毁对象

  • before_destroy
  • around_destroy
  • after_destroy
  • after_commit/after_rollback

rails 3

此列表的最新版本可以在 Rails 3 Guides 中找到。 .

创建对象

  • before_validation
  • after_validation
  • 保存前
  • around_save
  • before_create
  • around_create
  • after_create
  • 保存后

更新对象

  • before_validation
  • after_validation
  • 保存前
  • around_save
  • 更新前
  • around_update
  • after_update
  • 保存后

销毁对象

  • before_destroy
  • around_destroy
  • after_destroy

rails 2

此列表的最新版本可以在 Rails 2.3 Guides 中找到。

创建对象

  • before_validation
  • before_validation_on_create
  • after_validation
  • after_validation_on_create
  • 保存前
  • before_create
  • INSERT操作
  • after_create
  • 保存后

更新对象

  • before_validation
  • before_validation_on_update
  • after_validation
  • after_validation_on_update
  • 保存前
  • 更新前
  • 更新操作
  • after_update
  • 保存后

销毁对象

  • before_destroy
  • 删除操作
  • after_destroy

由于您需要首先验证 reference_code,因此可以在 after_validation 回调或其后出现的任何回调中调用 assign_reference 方法我上面提供的列表。

关于ruby-on-rails - ActiveRecord 回调和验证的顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com