我正在上传图像,并且在创建新记录时会触发观察者。在观察者中,我正在通过API将图像推送到其他服务。 问题是,当它在本地或在rspec测试时,似乎该记录保存在数据库之前图像保存在磁盘上,我收到文件未找到错误。如何使它保持正确的秩序?回形针,在保存在磁盘上的文件之前保存记录
1
A
回答
0
我不知道你的观察者和你的代码的内部。可能的解决方案是将观察者更改为在after_create
事件中触发。
2
观察者在模型中定义的回调之前被触发。因此,在处理附件的回形针的after_save
方法运行之前,将调用观察者的after_create
方法。
考虑使用after_commit
或ar_after_transaction
代替after_save
等,当与外部API进行通信,这是你想要什么呢,因为如果事务回滚,否则API调用不能撤消。
+0
有这个问题; after_commit为我工作。 –
+0
具有相同的问题,但根据:https://github.com/rails/rails-observers >这意味着观察者中的回调将始终在模型本身定义的回调之后调用。 –
相关问题
- 1. 在磁盘上保存文件
- 2. Carrierwave不保存磁盘上的文件
- 3. 将文件保存在磁盘中
- 4. 回形针保存附件
- 5. 保存到磁盘之前压缩和解压缩文件
- 6. 将上传的文件保存在磁盘上,ubuntu路径
- 7. 在保存到Java中的磁盘之前压缩图像
- 8. rails回形针mysql不保存文件
- 9. Couchbase - 将文档保存在内存和磁盘上的顺序
- 10. 在保存到PHP中的磁盘之前计算图像文件的大小
- 11. 保存附件文件在磁盘上得到失败
- 12. 发送保存在磁盘上的eml文件
- 13. UWP将zip文件保存到磁盘
- 14. 下载并保存文件到磁盘
- 15. HTML5文件系统 - 保存磁盘上的文件
- 16. 回形针不保存在数据库
- 17. 在内存中创建FileStream而不是在磁盘上保存物理文件
- 18. 将DynamicMethod保存到磁盘
- 19. Mongoengine FileField保存到磁盘?
- 20. 将NSMutableArray保存到磁盘
- 21. 将trie保存到磁盘
- 22. 将nsdate保存到磁盘
- 23. 在Padrino上没有保存附件的回形针
- 24. Symfony问题需要在保存实体之前保存文件
- 25. Rails回形针 - 跳过附件保存
- 26. 回形针没有保存附件
- 27. 回形针不保存附件
- 28. 列表保存到磁盘上
- 29. 的Rails 3回形针Uploadify:保存上传附件对象保存对象
- 30. 保存并读取磁盘上的文件
但是此刻创建之后 – Artur79