我正在使用Ruby on Rails应用程序,在该应用程序中,它创建了在after_save回调中生成一些文件。回形针宝石在课堂上使用。当创建这些文件时,在Ruby对象上调用save,该对象触发第二个save调用after_save的循环,调用save调用after_save和on和on。
保存! - > after_save - >保存! - > after_save的!
最终,某个应用程序会自行突破这个循环。我不知道怎么做。
我的问题是,如果我对某个类的属性进行了更改?= true,何时更改?会被翻转为false?我们使用更改?检查作为一种门来阻止此文件创建发生,并且每次进入after_save代码时似乎总是更改。我会认为在after_save中,改变了吗?由于数据已保存,现在将是假的。
答案 0 :(得分:-1)
您应该after_commit
使用previous_changes
中存在的键(属性)条件。
http://apidock.com/rails/ActiveModel/Dirty/previous_changes