ruby-on-rails - 为什么 Rails before_update 回调被弃用?还有什么选择呢?

标签 ruby-on-rails callback ruby-on-rails-6 beforeupdate

我查看了https://apidock.com/rails/ActiveRecord/Callbacks/before_update它说 before_update 已被弃用。有谁知道这是为什么以及替代方案是什么?

我有一些代码逻辑需要在更新现有记录时专门运行。 Before_save 在创建和更新时都会被调用,所以我不能使用它。

编辑:我想我可以做 before_save :do_stuff, if: !self.new_record?但我觉得这仍然很奇怪..

编辑2:!self.new_record? if: block 内不起作用。我需要放置!self.new_record?实际方法内的逻辑。

最佳答案

我不认为 before_update 在 Rails 6 中已被弃用。我建议使用 api.rubyonrails.org ( in this case ) 作为首选引用,因为它更紧密地遵循 API。您还可以查看source directly and see that it's still there 。最后,最新版本的 Rails Guides 建议 it is still an available callback 。尝试在 Rails 6 应用程序中使用 before_update,看看它是否按预期工作。

关于ruby-on-rails - 为什么 Rails before_update 回调被弃用?还有什么选择呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60032823/

相关文章:

ruby-on-rails - Rails/Heroku - 如何对上传的文件进行反病毒扫描?

javascript - 根据弹出窗口中单击的按钮返回 true 或 false

javascript - RequireJS:在回调中定义

ruby-on-rails - 停止在哈希 Ruby on Rails 中编码的字符串

ruby-on-rails - 自动/急于加载/app 之外的目录

ruby-on-rails - 将值绘制到 Rails 中的直方图上

ruby-on-rails - 没有ActiveRecord的文件上传

javascript - rails 5 : dynamic table ID access in Coffeescript

javascript - 如何在分页事件中突出显示数据表中的单词

ruby-on-rails - 如果 sidekiq 作业在 Rails 中处于死队列中,请重试它