我認爲重要的是要有一個「撤銷」方法ALA 的Gmail銷燬記錄的時候,而不是顯示惱人的彈出,上面寫着:「你確定嗎?」。在Rails中實現gmail樣式「撤消」的最佳方式是什麼?
,我已經實現了這是在當破壞方法,它被打上時間戳被稱爲
def destroy
@foo = Foo.find(params[:id])
@foo.update_attribute(:deleted_at, Time.now)
...
end
要復歸模型中的「deleted_at」時間戳列的方式/撤消我會只是設置在同一列爲零
def revert
@foo = Foo.find(params[:id])
@foo.update_attribute(:deleted_at, nil)
...
end
我就必須要添加到過濾掉的條件「已刪除」的Foo當我打電話find方法。也許設置一個cron或後臺任務來在一段時間後真正銷燬「已刪除」的foos。
適用於我,易於實現,但我很好奇,是否有更好的方法來實現此功能?也許有一個插件或寶石提供了我不知道的事情?
你真的在乎它何時被刪除?標誌不夠嗎? – 2008-10-14 15:10:56
是的,我真的不在乎什麼時候它被刪除,但是這些知識可能會有用。無論如何,我認爲時間戳是一個很好的標誌。 – JasonOng 2008-10-15 00:54:03
我同意一般情緒。然而,通過搶先需求這樣一個可能的問題是,它可能欺騙其他開發人員搜索當前使用的(時間戳)信息的位置。當它實際上並沒有在某個地方使用時,它代表了一個鬆散的線程,這對於外行來說通常是令人沮喪和耗時的。 – Magne 2011-05-18 10:04:10