2011-02-11 62 views
5

我有一個由回形針管理的幾個不同圖像附件的模型。最近,我們改變了模型的行爲,以便可以使用acts_as_paranoid進行軟刪除和恢復。一切都很好,除了當我們軟刪除模型時,回形針也會刪除附件。如何防止回形針從acts_as_paranoid模型中刪除附件?

我已經看過回形針文檔和代碼,我沒有看到一個明顯的方法來規避這一點。我希望能夠告訴回形針忽略模型上的刪除回調並保持附件?

回答

7

回形針現在有一個preserve_files選項。現在應該不需要覆蓋。

文件保留爲軟刪除

一個選項可用來保存,以便與軟刪除的模型發揮很好的附件。 (acts_as_paranoid,妄想等)

has_attached_file :some_attachment, { 
    :preserve_files => "true", 
} 

這將防止some_attachment被消滅了當模特被破壞,因此當對象稍後恢復它仍然存在。

https://github.com/thoughtbot/paperclip#file-preservation-for-soft-delete

+0

真棒!感謝您更新此內容(我很抱歉花了這麼長時間回來看看它)。 – 2013-03-12 21:56:47

2

瘋了多少次,你找到你自己的問題後,你問問題的答案。如果有其他人遇到同樣的問題,我可以放在這裏,或者有人可以有更好的解決方案。對我來說有效的是重寫回形針回調before_destroy回調的方法。我把它放到我的代碼中,它現在保留了我的附件,所以他們在那裏,如果我以後取消刪除模型。

protected 

    def destroy_attached_files 
    logger.error "-------------- This is me NOT destroying my attachments" 
    end