回形针,记录保存在磁盘上保存的文件之前

时间:2011-10-05 14:35:29

标签: ruby-on-rails paperclip observer-pattern

我正在上传图片,并且在创建新记录时会触发观察者。在观察者中,我通过API将图像推送到其他服务。 问题是当在本地或在rspec测试中进行时,似乎在将图像保存在磁盘上之前将记录保存在DB中并且我找不到文件错误。如何保持正确的秩序?

2 个答案:

答案 0 :(得分:2)

在模型中定义的回调之前触发观察者。因此,在运行回形针的after_create方法处理附件之前,会调用观察者的after_save方法。

考虑使用after_commitar_after_transaction而不是after_save等。当与外部API通信时,无论如何这都是您想要的,否则如果事务是,则无法撤消API调用回滚。

答案 1 :(得分:0)

我不知道你的观察者和你的代码的内部。一种可能的解决方案是更改在after_create事件上触发的观察者。