2016-04-15 139 views
0

我有我的rails 4应用程序中的用户模型。Rails 4 - 为什么索引记录在destroy_all后仍然存在?

我已经为我的控制台,并做到:

User.destroy_all 

User.count验证,我认为没有用户。然后我尝试重新注册,这允许我做什么,但一旦我确认我的电子邮件,并尝试登录,我得到一个错误,指出:

ERROR: duplicate key value violates unique constraint "index_users_on_email" 
DETAIL: Key (email)=([email protected]) already exists. 

我怎样才能解决这个索引记录,以便那些在User.destroy_all方法运行时也被删除?

+0

您正在使用的数据库? – uzaif

+0

psql数据库.. – Mel

+0

这是因为序列..重置您的表序列'ALTER SEQUENCE“your_sequence_name”RESTART WITH 0;' – uzaif

回答

0

为确保您没有此问题,请确保在销毁用户时删除所有相关数据。

class UpdateUserForeignKey < ActiveRecord::Migration 
    def change 
    remove_foreign_key :users, :email 

    add_foreign_key :users, :email, on_delete: :cascade 
    end 
end 

更多关于Rails的外键 http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/add_foreign_key

+0

你好弗拉德。我想也许我们的电线是交叉的。我试图使用控制台销毁用户表中的所有记录。有些东西被保留下来,因为虽然我希望表格是空的,但我得到了上面的错误,表明有东西被保留下来。我不想编写迁移来更改表格。 – Mel

相关问题