Ruby on rails 用户在创建时存在,但实际上不存在';数据库中的t
我对当前应用程序的DB设置有一个奇怪的问题 随着迁移的顺利进行,但是当我尝试用一些测试数据为数据库种子时,它会说数据存在并回滚事务 当我查询数据库以检查记录是否存在时,它返回nil 在这一点上,我迷失了我甚至应该寻找罪犯的地方 感谢您的帮助 种子。rb:Ruby on rails 用户在创建时存在,但实际上不存在';数据库中的t,ruby-on-rails,ruby,macos,postgresql,activerecord,Ruby On Rails,Ruby,Macos,Postgresql,Activerecord,我对当前应用程序的DB设置有一个奇怪的问题 随着迁移的顺利进行,但是当我尝试用一些测试数据为数据库种子时,它会说数据存在并回滚事务 当我查询数据库以检查记录是否存在时,它返回nil 在这一点上,我迷失了我甚至应该寻找罪犯的地方 感谢您的帮助 种子。rb: User.create(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true) ActiveRec
User.create(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)
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 Load (1.0ms) SELECT "users".* FROM "users"
User Load (1.0ms) SELECT "users".* FROM "users"
=> []
rake数据库:种子输出:
User.create(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)
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 Load (1.0ms) SELECT "users".* FROM "users"
User Load (1.0ms) SELECT "users".* FROM "users"
=> []
User.all:
User.create(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)
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 Load (1.0ms) SELECT "users".* FROM "users"
User Load (1.0ms) SELECT "users".* FROM "users"
=> []
由于某些验证错误,用户创建似乎失败了,即,
用户
模型上的任何验证都禁止创建用户记录
您可以做的是,使用以下命令更新seeds.rb
:
User.create!(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)
注意创建代码>而不是创建
这样,您就可以知道用户创建在哪个验证上失败。使用user.create!或者像这样的代码
user = User.create(first_name: 'John', last_name: 'Doe', email: 'john@doe.com', password: 'testing', is_admin: true)
然后运行user.save
尝试create
,您将看到错误。选择1作为一个…
表明您对电子邮件地址进行了唯一性验证,这可能会失败。