Rails 4-为什么destroy_all之后仍保留索引记录



我的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方法时也删除这些记录?

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

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

最新更新