我有两个模型,其中一个是用户,另一个是评论。评论属于用户。
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更好的方法吗?