我正在上传图片,并且在创建新记录时会触发观察者。在观察者中,我通过API将图像推送到其他服务。 问题是当在本地或在rspec测试中进行时,似乎在将图像保存在磁盘上之前将记录保存在DB中并且我找不到文件错误。如何保持正确的秩序?
答案 0 :(得分:2)
在模型中定义的回调之前触发观察者。因此,在运行回形针的after_create
方法处理附件之前,会调用观察者的after_save
方法。
考虑使用after_commit
或ar_after_transaction
而不是after_save
等。当与外部API通信时,无论如何这都是您想要的,否则如果事务是,则无法撤消API调用回滚。
答案 1 :(得分:0)
我不知道你的观察者和你的代码的内部。一种可能的解决方案是更改在after_create
事件上触发的观察者。