ruby-on-rails - jumpstart - ActiveRecord::RecordNotUnique: PG::UniqueViolation: 错误: 重复键值违反唯一约束
问题描述
rails test
在全新的 jumpstart/gorails 安装和空白数据库上运行时,我得到以下信息:-
DRb::DRbRemoteError: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_users_on_email"
DETAIL: Key (email)=() already exists.
(ActiveRecord::RecordNotUnique)
在我的架构中,我在用户上有以下内容,这导致了上述情况:-
t.index ["email"], name: "index_users_on_email", unique: true
似乎错误告诉我有一个现有记录(用户?)但数据库是空白的,所以我不明白为什么会这样?
解决方案
你可以这样处理:我在创建用户时遇到了类似的问题。我是这样固定的。
begin
User.where(email: "abc@gmail.com").first_or_create(email:"abc@gmail.com", name: "name of user", other fields)
rescue ActiveRecord::RecordNotUnique
retry
end
推荐阅读
- visual-studio-code - 在 Visual Studio Code 中,一个包含文件的文件夹会在一段时间后被删除
- java - 为什么在 Java 应用程序中使用 JPA Hibernate 元模型类?
- dataframe - 计算所有列的方差并打印结果
- python - Python 3.9.8 使用 Black 并导入 `typed_ast.ast3` 失败
- string - 在 8086 模拟器中取字符串长度和反向
- javascript - 获取多行表格的文本
- python - Loguru:如何混淆日志中的数据
- mongodb - 使用 PySpark 从 MongoDB 到 Elasticsearch
- java - TextView 未显示在按钮上
- python - 傅里叶变换高通圆形滤波器直觉