从rails控制台删除用户记录

时间:2014-02-18 06:16:34

标签: ruby-on-rails devise

我们在生产数据库中有一些测试数据,我正在尝试清理它。

我直接从控制台删除了一些测试电子邮件地址。

User.where(:email=>"asdf@example.com").first.delete

删除了该记录。

现在,当我尝试使用相同的电子邮件地址创建另一个帐户时,它表示已经收到了电子邮件。

我在开发环境中已经多次这样做了,它就像一个魅力。

我知道我永远不应该直接从控制台删除prod中的记录,但这是一次性的情况,我只是好奇它为什么不起作用。

请帮我解决这个问题。

5 个答案:

答案 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的电子邮件进行一些验证。