ActiveRecord 回调列表

2024-01-02

我已经浏览 Rails 源代码有一段时间了,我认为没有更好的方法来获取列表all除以下回调之外的回调:ActiveRecord::Callbacks::CALLBACKS– 这是一个常量列表。

意思是如果您使用像 devise_invitable 这样的 gem,它会添加一个名为的新回调:invitation_accepted与分数:after and :before then ActiveRecord::Callbacks::CALLBACKS不管用。

除了打开 Rails 模块并确保每个模型类有一个内部回调列表之外,您是否知道一个简单的修复方法?


您可以致电Model._save_callbacks获取保存时所有回调的列表。 然后您可以将其过滤为您需要的类型,例如:before or :after像这样:

Model._save_callbacks.select {|cb| cb.kind == :before}

作用相同Model._destroy_callbacks etc.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ActiveRecord 回调列表 的相关文章

随机推荐