如何列出在 .save 操作中执行的所有回调?
How to list all callbacks that were executed in a .save operation?
在我的代码库中的一个模型中,有一个回调在我更新记录时不被执行,只有在我创建它时才被执行。
我怀疑这是因为另一个回调返回 false 并停止了回调链。
这就是为什么我想知道在确定的操作中正在执行哪些回调(在这种情况下,update
)。
是否可以列出这些回调?
我在 https://guides.rubyonrails.org/v4.2/active_record_callbacks.html.
中找不到方法
此回调在使用升级方法时有效:
",关于:更新"
有一个gem
作者已经在this问题(第二个答案)中发布了它。
一个例子:对于这段代码
Mechanic.first.save
(Mechanic
只是一个ActiveRecord模型)
gem 使用默认设置打印这个
Callback: validate_associated_records_for_mechanics_games
Callback: validate_associated_records_for_games
Callback: _ensure_no_duplicate_errors
Callback: before_save_collection_association
Callback: #<ActiveSupport::Callbacks::Conditionals::Value:0x000000000b7736d8>
Callback: autosave_associated_records_for_mechanics_games
Callback: #<ActiveSupport::Callbacks::Conditionals::Value:0x000000000b6eba08>
Callback: autosave_associated_records_for_games
Callback: #<ActiveSupport::Callbacks::Conditionals::Value:0x000000000b6f1890>
Callback: after_save_collection_association
Callback: print_hello
最后一个回调 print_hello
是自定义的,为此测试用例定义,因此 gem 显示默认和自定义回调。
在我的代码库中的一个模型中,有一个回调在我更新记录时不被执行,只有在我创建它时才被执行。
我怀疑这是因为另一个回调返回 false 并停止了回调链。
这就是为什么我想知道在确定的操作中正在执行哪些回调(在这种情况下,update
)。
是否可以列出这些回调?
我在 https://guides.rubyonrails.org/v4.2/active_record_callbacks.html.
此回调在使用升级方法时有效:
",关于:更新"
作者已经在this问题(第二个答案)中发布了它。
一个例子:对于这段代码
Mechanic.first.save
(Mechanic
只是一个ActiveRecord模型)
gem 使用默认设置打印这个
Callback: validate_associated_records_for_mechanics_games
Callback: validate_associated_records_for_games
Callback: _ensure_no_duplicate_errors
Callback: before_save_collection_association
Callback: #<ActiveSupport::Callbacks::Conditionals::Value:0x000000000b7736d8>
Callback: autosave_associated_records_for_mechanics_games
Callback: #<ActiveSupport::Callbacks::Conditionals::Value:0x000000000b6eba08>
Callback: autosave_associated_records_for_games
Callback: #<ActiveSupport::Callbacks::Conditionals::Value:0x000000000b6f1890>
Callback: after_save_collection_association
Callback: print_hello
最后一个回调 print_hello
是自定义的,为此测试用例定义,因此 gem 显示默认和自定义回调。