我目前正在使用Rails 3 + Devise。我通过将Time.now设置为User.deleted_at来轻轻删除用户。
这会删除用户。然后在我的application_controller中,我检查摆脱任何软删除的用户。
before_filter :no_deleted_users
def no_deleted_users
if current_user && current_user.deleted_at
flash[:alert] = "Access Denied"
return sign_out_and_redirect('/')
end
end
问题是软删除的用户仍会在我的应用中出现。我有类似的模型:
User (id, deleted_at)
GroupMember(id,user_id)
Comment(id,user_id)
如何才能使soft_deleted用户永远不会出现在应用中?我尝试在User.rb中执行此操作:
default_scope:conditions => 'users.deleted_at IS NULL'
但是当我做了像group.group_members这样的事情时,这个范围没有任何效果。具有soft_deleted的user_id记录的Group_members仍然被返回。
如何优雅地处理在应用中删除soft_deleted用户的建议?
由于