2011-11-10 51 views
1

我對acts_as_soft_deletable插件和has_and_belongs_to_many關係有問題。Rails acts_as_soft_deletable with has_and_belongs_to_many

我有一個模型「地方」有幾個類別(如餐廳,酒店等)。這意味着在數據庫中創建了一個表「places_categories」,其中包含兩列「地點」和「類別」。

當我銷燬一個地方時,它通過acts_as_soft_deletable放置在表「deleted_places」中。然後我嘗試恢復它,並且應用程序崩潰,因爲沒有類別的地方不能存在。存儲地點所屬類別的「places_categories」中的條目隨着地點被刪除而被刪除。

如何確保當places被移動到「deleted_places」表時,「places_categories」不會刪除關係?

回答

1

由於沒有明確保留這些條目的選項 - 你可以做一些瘋狂和愚蠢的事情,只是將delete_sql選項覆蓋到空字符串或某些不會在「數據庫端」失敗的東西上:

class Place 
    has_and_belongs_to_many :categories, :delete_sql => "select true" 
end 

這是未經測試!只是一個想法。

您可以閱讀有關所有可用選項here

相關問題