在现有活动记录对象上重新运行 after_create 回调

Posted

技术标签:

【中文标题】在现有活动记录对象上重新运行 after_create 回调【英文标题】:Re-run after_create callback on existing active record objects 【发布时间】:2021-12-23 02:16:12 【问题描述】:

我最近重构了一些代码,并向名为 Product 的活动记录对象添加了一系列 after_create 回调。我在生产数据库中有很多产品,不想手动重新创建它们。无论如何我可以通过 rails 控制台重新创建活动记录对象的所有现有实例,以便在每个实例上运行 after_create 回调?

【问题讨论】:

回调只是方法。 Product.first.an_after_create_callback 应该可以工作。如果回调是私有的,请使用send。请更新模型和回调。 成功了!谢谢 【参考方案1】:

根据 razvans 的评论,我打开 Rails 控制台并运行

Product.all.each |product| product.send(:call_back) 

【讨论】:

以上是关于在现有活动记录对象上重新运行 after_create 回调的主要内容,如果未能解决你的问题,请参考以下文章

重新打开堆栈中的现有活动时共享元素转换重新排序到前面

如果活动在后台运行,则无需通过启动器即可从小部件恢复现有活动

CodeIgniter - 如果新的或更新的重复记录则插入活动记录

错误:活动上的查找必须具有唯一的域

当应用程序进程被终止时,请勿打开上一个活动

Android 通知导航到现有活动