【问题标题】:Rails 4 Devise reactivate "soft deleted" accountsRails 4 设计重新激活“软删除”帐户
【发布时间】:2016-01-24 21:21:22
【问题描述】:

关注这个tutorial on how to do a soft-delete,它有效。但是,如果用户决定要返回并重新激活帐户,那么最好的方法是什么?或者也有这方面的维基?没找到。

【问题讨论】:

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


    【解决方案1】:

    查看您发布的教程链接,他们使用时间 (deleted_at) 来确定用户是否被删除(软删除)。

    如果登录凭据正确,您现在可以使用单独的路径和方法重新激活用户,我称之为 reactivate_user

    # app/models/user.rb  
    
      # instead of deleting, indicate the user requested a delete & timestamp it  
      def soft_delete  
        update_attribute(:deleted_at, Time.current)  
      end  
    
      def reactivate_user  
        update_attribute(:deleted_at, nil)  
      end 
      # ensure user account is active  
      def active_for_authentication?  
        super && !deleted_at  
      end  
    
      # provide a custom message for a deleted account   
      def inactive_message   
        !deleted_at ? super : :deleted_account  
      end 
    

    【讨论】:

    • 应该是nil 而不是NULL
    • 有人可以扩展这个答案吗?例如,当用户尝试登录时,您将如何使用 reactivate_user 方法?我不太确定它是如何工作的。
    • 这有点晚了,但可能仍然有帮助。这取决于您采用的流程(身份验证方法),例如,在名为重新激活的页面上使用任何电子邮件和密码,您获取他们的用户电子邮件和密码,获取与此匹配的用户,您可能会做类似 @987654324 的事情@if user user.reactivate_user end
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2014-11-29
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    相关资源
    最近更新 更多