【发布时间】:2016-01-24 21:21:22
【问题描述】:
关注这个tutorial on how to do a soft-delete,它有效。但是,如果用户决定要返回并重新激活帐户,那么最好的方法是什么?或者也有这方面的维基?没找到。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 devise
关注这个tutorial on how to do a soft-delete,它有效。但是,如果用户决定要返回并重新激活帐户,那么最好的方法是什么?或者也有这方面的维基?没找到。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 devise
查看您发布的教程链接,他们使用时间 (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。
if user user.reactivate_user end