我正在上傳圖像,並且在創建新記錄時會觸發觀察者。在觀察者中,我正在通過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. 保存記錄前存儲回形針附件
- 3. Carrierwave不保存磁盤上的文件
- 4. 將PDF文件保存在磁盤中
- 5. 將文件保存在磁盤中
- 6. Java聲音Api:保存在磁盤上的記錄後不播放Wav文件
- 7. 回形針保存附件
- 8. 保存到磁盤之前壓縮和解壓縮文件
- 9. 將上傳的文件保存在磁盤上,ubuntu路徑
- 10. 在保存到Java中的磁盤之前壓縮圖像
- 11. rails回形針mysql不保存文件
- 12. Couchbase - 將文檔保存在內存和磁盤上的順序
- 13. 在保存到PHP中的磁盤之前計算圖像文件的大小
- 14. 保存附件文件在磁盤上得到失敗
- 15. 在保存到磁盤之前縮放Django ImageField
- 16. Chrome的DevTools:SASS源文件不會被保存在磁盤上
- 17. git add -A將刪除的文件保存在磁盤上?
- 18. 發送保存在磁盤上的eml文件
- 19. UWP將zip文件保存到磁盤
- 20. 提示將文件保存到磁盤
- 21. 下載並保存文件到磁盤
- 22. 將文件保存在磁盤上針對備份和恢復的數據庫
- 23. HTML5文件系統 - 保存磁盤上的文件
- 24. 檢查在保存父記錄之前是否存在匹配的子記錄
- 25. 將jar文件的目錄保存到用戶的磁盤
- 26. 在內存中創建FileStream而不是在磁盤上保存物理文件
- 27. 回形針不保存在數據庫
- 28. 將trie保存到磁盤
- 29. MySql不保存到磁盤
- 30. 將nsdate保存到磁盤
但是此刻創建之後 – Artur79