2011-11-18 61 views
0

在我的應用程序中,我有一個具有after_create和after_destroy方法的模型,該方法創建一個目錄,然後分別在文件系統上銷燬它。使RSpec銷燬記錄而不是刪除它們

我注意到在我的RSpec請求規範中,模型記錄得到了創建查找(因此創建的目錄),但我假設記錄只是在每個規範後刪除而不是銷燬,因此目錄四周而不是被刪除。無論是或者RSpec只是在整個規範中回滾數據庫事務?

我的問題是,我如何讓RSpec安全地銷燬這些記錄,以便文件系統保持同步?

我已經試過:

after(:each) do 
    Entity.destroy_all 
end 

和工作,但我不知道這是最好的方式。

也許我可以在我的模型本身做得更好,這樣如果我檢測到事務回滾,我也可以刪除目錄呢?我從來沒有聽說過這個功能,雖然也許在begin rescue ensure區塊中。

任何提示?

回答

1

原來,您可以關閉某些規範的交易,如需要完全添加記錄並在回調後運行的規則。我也通過after_create修改爲after_commit(:on =>:create)(語法上不是100%確定,只是從內存中獲取)來添加和刪除文件系統元素,因爲這是確保記錄存在於數據庫在進行文件系統更改之前。

相關問題