私は 2 つのモデルを持っています。そのうちの 1 つはユーザーで、もう 1 つはコメントです。コメントはユーザーに属します。
class User < ActiveRecord::Base
act_as_paranoid
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :user
end
コントローラーで user.delete を実行すると、deleted_at 列が設定され、レコードが非表示になるという期待される結果が得られます。
私の問題は、ユーザーのコメントの関連付けが null に設定されていることです。したがって、サイトでは、コメントを所有しているユーザーは表示されません。ユーザーの名前が「なし」や「匿名」などではないことをコメントに表示したいと思います。
github https://github.com/goncalossilva/rails3_acts_as_paranoid/blob/rails3.2/lib/acts_as_paranoid/core.rbのソースを見る.
私の場合、削除時にユーザーアカウントを閉鎖したいだけです。クエリに表示されなくなったため、Authlogic はそれらを拒否し、ユーザー インデックス ページには表示されません。ただし、ユーザーが所有するものはすべて、ユーザーが引き続き所有できるようにします(ユーザーが戻ってくる可能性があるためなど)。
act_as_paranoid よりも良い方法はありますか?