【问题标题】:when does changed? flip in activerecord callbacks?什么时候改变?翻转 activerecord 回调?
【发布时间】:2017-04-17 20:30:55
【问题描述】:

我正在使用 Ruby on Rails 应用程序,它被设计为在 after_save 回调中生成一些文件。回形针宝石在课堂上使用。创建这些文件时,会在 Ruby 对象上调用 save ,这会触发第二次 save 的循环,调用 after_save 调用 save 并调用 after_save 并继续。

保存! -> after_save -> 保存! -> after_save!

最终,应用程序以某种方式自行打破了这个循环。我不确定如何。

我的问题是,如果我的类的属性已更改?=true, 何时更改? 会被翻转为 false?我们使用 changed? 检查作为一种门,以防止发生此文件创建,并且每次进入 after_save 代码时似乎 changed 总是正确的。我会认为在 after_save 中,改变了?由于数据已保存,现在将是错误的。

【问题讨论】:

  • after_update() 可以在调用 after_save 后使用

标签: ruby-on-rails activerecord paperclip


【解决方案1】:

您应该使用after_commitprevious_changes 中存在的键(属性)的条件。 http://apidock.com/rails/ActiveModel/Dirty/previous_changes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    相关资源
    最近更新 更多