Rails 4 - 为什么在destroy_all之后索引记录仍然存在?

时间:2016-04-15 07:37:06

标签: ruby-on-rails console

我的rails 4应用程序中有一个用户模型。

我已进入我的控制台并完成了:

User.destroy_all

User.count向我验证没有用户。然后我尝试再次注册,我被允许这样做,但是一旦我确认我的电子邮件并尝试登录,我就会收到错误消息:

ERROR:  duplicate key value violates unique constraint "index_users_on_email"
DETAIL:  Key (email)=(angus@gmail.com) already exists.

如何修复此索引记录,以便在运行User.destroy_all方法时也删除这些记录?

1 个答案:

答案 0 :(得分: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