我有兩個模型其中之一是用戶和另一個評論。評論屬於用戶。維護與act_as_paranoid的關聯
class User < ActiveRecord::Base
act_as_paranoid
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :user
end
當我做user.delete在我的控制,我得到了deleted_at列被設置和記錄被隱藏的預期效果。
我的問題是用戶的評論關聯設置爲空。所以現在在網站上顯示沒有用戶擁有評論。我想評論仍然顯示用戶的名稱不是「無」或「匿名」等。
看着github上的源代碼https://github.com/goncalossilva/rails3_acts_as_paranoid/blob/rails3.2/lib/acts_as_paranoid/core.rb它似乎調用run_callbacks,這反過來導致Rails 3回落到Nullify關聯的默認值。
就我而言,我只是希望用戶帳戶在被刪除時關閉。不再顯示在查詢中,Authlogic將拒絕它們,並且用戶索引頁面不會顯示它們。但仍然允許用戶擁有的所有東西仍歸他們所有(因爲他們可能會回來等等)。
有沒有更好的辦法做到這一點,然後acts_as_paranoid?