我在这里询问如何恢复碰巧被删除的用户帐户(作为错误)。用户的电子邮件地址是' sungpah+100@gmail.com'例如,并希望再次将此电子邮件地址用作帐户。
我尝试创建新用户并插入相同的电子邮件地址,但控制台输出是
用户存在(1.4ms)SELECT 1 AS一个来自users
WHERE users
。email
= 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 users
。deleted_at
IS NULL]
是结果!
期待看到任何回复! 最好
答案 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)