0
我期望的行爲是,當在實例上調用destroy時,該實例實際上不會被銷燬,但它只會被標記爲已銷燬。這需要滲透到任何模型關聯。Rails 3覆蓋銷燬無需取消回調並觸發ROLLBACK
在我不想實際銷燬的模型中,只是將它們標記爲已刪除,我有一個deactivated
字段。
從我能告訴< v3.0.0這樣做的方法是覆蓋destroy_without_callbacks
(這就是ActsAsParanoid的做法),但是該方法在3.0.0中不再存在,再加上我對重寫私人方法。
我也嘗試過實現回調,但是根據docs回調中所做的任何更改都是交易的一部分,因此也會回滾。
我的回調看起來像:
after_destroy :mark_deactivated
def mark_deactivated
if self.respond_to?(:deactivated) then
self.deactivated = DateTime.now
self.save
false
else
true
end
end
如何防止我的紀錄的實際破壞沒有停止回調,並有我的變化回滾?