在全新的Jumpstart / gorails安装和空白数据库上运行rails test
时,我得到以下信息:-
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
似乎错误告诉我已有记录(用户?),但是数据库为空,所以我不明白为什么会这样?
答案 0 :(得分:0)
您可以通过以下方式进行处理: 创建用户时,我遇到了类似的问题。 我是这样固定的。
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
答案 1 :(得分:0)
检查以查看test/fixtures/users.yml
中是否有空白条目。如果是这样,请将其删除,或给他们提供非空的电子邮件地址。
我没有使用Jumpstart,但是从他们网站的快速扫描中,我猜测它正在使用Devise,它会创建两个空白的固定装置,并且如果您在任何字段上添加了唯一索引,都会使测试失败