我是 devise 和 rails 的新手,我刚刚将 devise 与我的示例应用程序集成在一起。我注意到在创建用户 模型后,我的所有单元测试都失败了。我试图缩小范围,发现即使是为 user_test.rb
生成的断言“真相”也失败了:
ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: \
column email is not unique: INSERT INTO "users" (...
一旦我注释掉 add_index
...
# add_index :users, :email, :unique => true
... 并重新运行 rake db:test:load
并使用 ruby -I test test/unit/user_test.rb
重新运行测试,它通过了。
有没有人遇到过这种情况?
最佳答案
如果您刚刚生成了设计模型,则还生成了一个或多或少包含以下内容的夹具:
one: {}
# column: value
#
two: {}
# column: value
这个装置试图创建两个用户,使用相同的(不存在的)电子邮件。替换为:
one:
email: test1@test.com
two:
email: test2@test.com
它将修复这个错误。
关于ruby-on-rails - 将索引添加到电子邮件列是单元测试失败的罪魁祸首,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769758/