我的当前应用程序的数据库设置存在一个奇怪的问题。
由于迁移过程没有问题,但是当我尝试使用某些测试数据对数据库进行种子处理时,它表示数据存在并回滚事务。
当我查询数据库以检查记录是否存在时,它返回nil。
此时我已经迷失在我应该寻找罪魁祸首的地方。
感谢任何帮助。
seeds.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
User.all:
User Load (1.0ms) SELECT "users".* FROM "users"
User Load (1.0ms) SELECT "users".* FROM "users"
=> []
答案 0 :(得分:1)
由于某些验证错误,用户创建似乎失败,即User
模型上的任何验证都禁止创建用户记录。
您可以做的是,使用以下内容更新seeds.rb
User.create!(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)
注意 create!
而不是create
。
通过这种方式,您可以了解用户创建失败的验证。
答案 1 :(得分:0)
使用User.create!或像这样的代码
user = User.create(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)
然后运行user.save