在使用User.deleted_at(timestamp)禁止/删除用户时,如何隐藏soft_deleted用户?

时间:2012-09-23 01:46:47

标签: ruby-on-rails ruby-on-rails-3 devise

我目前正在使用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用户的建议?

由于

0 个答案:

没有答案