我有幾個ActiveRecord對象,關聯標記爲dependent: :destroy
。當用戶刪除其中一個對象時,我想向他展示將被(遞歸)刪除的所有對象的列表。我如何獲得這個列表?哪些記錄受ActiveRecord相關影響:destroy?
我發現affected_on_destroy
寶石here,但它並沒有真正完成,似乎是軌道2.2。有沒有更多的當前寶石或軌道中的某些功能來做到這一點?
我有幾個ActiveRecord對象,關聯標記爲dependent: :destroy
。當用戶刪除其中一個對象時,我想向他展示將被(遞歸)刪除的所有對象的列表。我如何獲得這個列表?哪些記錄受ActiveRecord相關影響:destroy?
我發現affected_on_destroy
寶石here,但它並沒有真正完成,似乎是軌道2.2。有沒有更多的當前寶石或軌道中的某些功能來做到這一點?
我寫了一個寶石affected_by_destroy
,來源可以找到here。
Class.reflect_on_all_associations.
keep_if{ |assoc| assoc.options[:dependent] == :destroy }.map(&:name)
這可能不是你正在尋找的,但我認爲reflect_on_all_associations
應該得到你想要的。
這將是手工操作的方式,也是寶石如何工作的方式。但不知何故,我覺得應該有更好的方法,或者有人應該已經實現了這一點。 –
我看到過的每一個處理依賴關聯的寶石(不是很多,不可否認)都以這種方式發現它們。這對我來說看起來像是一個開放的問題。 – gregates