如何在Ruby中恢复具有特定电子邮件地址的用户帐户(用户设计宝石使用)

时间:2016-07-18 15:31:00

标签: ruby-on-rails email devise

我在这里询问如何恢复碰巧被删除的用户帐户(作为错误)。用户的电子邮件地址是' sungpah+100@gmail.com'例如,并希望再次将此电子邮件地址用作帐户。

我尝试创建新用户并插入相同的电子邮件地址,但控制台输出是

用户存在(1.4ms)SELECT 1 AS一个来自users WHERE usersemail = BINARY' sungpah+100@gmail.com'限制1    (1.1ms)ROLLBACK

我可以使用&sungpah+100@gmail.com'创建一个帐号;再次?

当我尝试使用以下命令搜索帐户时:User.find_by(:email =>' sungpah+1@gmail.com' ;,结果目前为零!

id为950,现在如果我使用User.find(950)进行搜索,ActiveRecord :: RecordNotFound:找不到用户身份' = 950 [WHERE usersdeleted_at IS NULL] 是结果!

期待看到任何回复! 最好

1 个答案:

答案 0 :(得分:2)

如果没有更多信息,很难确定,但是根据问题中的deleted_at查询,您似乎正在使用acts_as_paranoid之类的gem,它可以让您隐藏和恢复记录而不删除它们。这太好了!

尝试user = User.unscoped.find(950)

您可能已将默认范围应用于此acts_as_paranoid gem提供的用户模型,该范围会过滤掉deleted_as所在的任何记录。 unscoped将删除该范围,让您查找所有记录。

找到该用户后,您可以通过删除deleted_at字段来恢复该用户。

user.update_attributes(deleted_at: nil)