首页 > 解决方案 > 。当下?在触发 after_save 回调的 ActiveRecord 对象上

问题描述

我目前正在做一个 Rails 项目,我有两个模型,FooBar。他们的关系是Foo属于Bar

预期行为

每当我尝试调用.present 时?,它会告诉我特定对象是否存在?对于我给定的场景,Foo.first.bar.present? 只会告诉我该foo的 bar强文本是否存在。

实际行为

调用Foo.first.bar.present?正在触发bar对象上的.save ,这给我带来了困难,因为在保存特定 bar 对象后,有一些回调可能需要时间更新大量数据。截图链接如下

https://share.getcloudapp.com/d5u0bykB

系统配置

Rails 版本: Rails 5.0.7.2

Ruby 版本: ruby 2.4.4p296(2018-03-28 修订版 63013)[x86_64-darwin18]

标签: ruby-on-railsrubyruby-on-rails-5

解决方案


你可以在源代码中看到present?blank?这些方法永远不会保存记录。因此,您的问题的原因必须在您的代码中的其他地方。


推荐阅读