如何列出在 .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.

中找不到方法

此回调在使用升级方法时有效:

",关于:更新"

这个RailsCallbackLog

有一个gem

作者已经在this问题(第二个答案)中发布了它。

一个例子:对于这段代码 Mechanic.first.saveMechanic只是一个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 显示默认和自定义回调。