2011-10-05 88 views
1

我正在上傳圖像,並且在創建新記錄時會觸發觀察者。在觀察者中,我正在通過API將圖像推送到其他服務。 問題是,當它在本地或在rspec測試時,似乎該記錄保存在數據庫之前圖像保存在磁盤上,我收到文件未找到錯誤。如何使它保持正確的秩序?回形針,在保存在磁盤上的文件之前保存記錄

回答

0

我不知道你的觀察者和你的代碼的內部。可能的解決方案是將觀察者更改爲在after_create事件中觸發。

+0

但是此刻創建之後 – Artur79

2

觀察者在模型中定義的回調之前被觸發。因此,在處理附件的回形針的after_save方法運行之前,將調用觀察者的after_create方法。

考慮使用after_commitar_after_transaction代替after_save等,當與外部API進行通信,這是你想要什麼呢,因爲如果事務回滾,否則API調用不能撤消。

+0

有這個問題; after_commit爲我工作。 –

+0

具有相同的問題,但根據:https://github.com/rails/rails-observers >這意味着觀察者中的回調將始終在模型本身定義的回調之後調用。 –