我们在生产数据库中有一些测试数据,我正在尝试清理它。
我直接从控制台删除了一些测试电子邮件地址。
User.where(:email=>"asdf@example.com").first.delete
删除了该记录。
现在,当我尝试使用相同的电子邮件地址创建另一个帐户时,它表示已经收到了电子邮件。
我在开发环境中已经多次这样做了,它就像一个魅力。
我知道我永远不应该直接从控制台删除prod中的记录,但这是一次性的情况,我只是好奇它为什么不起作用。
请帮我解决这个问题。
答案 0 :(得分:3)
在控制台中尝试此操作
User.where(:email => "asdf@example.com").delete_all
或者如果你想删除所有数据
u = User.find("someone@example.com")
u.delete
答案 1 :(得分:2)
您是否在生产中使用类似Paranoia gem的内容来软删除用户记录?如果是,请尝试User.with_deleted.where(:email=>"asdf@example.com")
,如果返回结果,只需将用户的电子邮件地址更改为不存在的电子邮件地址。
答案 2 :(得分:1)
根据您的命令,您只删除User表的第一条记录:
User.where(:email=>"asdf@example.com").first.delete
我认为,有多个条目。!
您应该将delete_all与User对象一起使用,如下所示:
User.where(:email=>"asdf@example.com").delete_all
答案 3 :(得分:0)
User.where(:email=>"asdf@example.com").delete_all
答案 4 :(得分:0)
每次使用控制台进行操作时,您都必须重新加载控制台并插入新记录。
还有一件事,你是第一个使用电子邮件的用户,所以在你的用户模型中,应该通过uniq的电子邮件进行一些验证。