我对当前应用程序的数据库设置有一个奇怪的问题。
当迁移没有问题时,但是当我尝试用一些测试数据来播种DB时,它表示数据存在并回滚事务。
当我询问DB以检查记录是否存在时,它以零返回。
在这一点上,我迷失在我应该寻找罪魁祸首的地方。
如有任何帮助,我们将不胜感激。
种子.rb:
User.create(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)
rake db:种子输出:
ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
(0.2ms) BEGIN
User Exists (1.0ms) SELECT 1 AS one FROM "users" WHERE "users"."email" = 'john@doe.com' LIMIT 1
(0.2ms) ROLLBACK
用户.all:
User Load (1.0ms) SELECT "users".* FROM "users"
User Load (1.0ms) SELECT "users".* FROM "users"
=> []
最佳答案
用户创建似乎由于某些验证错误而失败,即User
模型上的任何验证都禁止创建用户记录。
您可以做的是,使用以下命令更新seeds.rb
:
User.create!(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)
注意
create!
而不是create
。这样就可以知道用户创建失败的验证。