所以我有一個友誼表看起來像這樣兩行表:依賴=>:摧毀它包含「相同的結果」
create_table "friendships", :force => true do |t|
t.integer "user_id"
t.integer "friend_id"
t.integer "status"
end
對於各好友創建了兩個行插入,與USER_ID和friend_id恢復。當用戶被刪除時,友誼也應該被刪除。此代碼刪除其中之一:
has_many :friendships, :dependent => :destroy
但是,這隻會刪除其中一個友誼。在我的友誼模式,我有這樣的代碼:
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
我也有去除它創建調用破壞雙方的關聯對象事務友誼的自定義方法。
我的解決方案是重寫User中的destroy方法,並遍歷所有友情並調用我的remove方法。這有效,但它是一個優雅的解決方案?我覺得可以有一個很好的Rails方式來做到這一點。
謝謝。
請推薦一個更好的標題。我確定這被稱爲某種東西。 :) –