Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用户在创建时存在,但实际上不存在';数据库中的t_Ruby On Rails_Ruby_Macos_Postgresql_Activerecord - Fatal编程技术网

Ruby on rails 用户在创建时存在,但实际上不存在';数据库中的t

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

我对当前应用程序的DB设置有一个奇怪的问题

随着迁移的顺利进行,但是当我尝试用一些测试数据为数据库种子时,它会说数据存在并回滚事务

当我查询数据库以检查记录是否存在时,它返回nil

在这一点上,我迷失了我甚至应该寻找罪犯的地方

感谢您的帮助

种子。rb:

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作为一个…
表明您对电子邮件地址进行了唯一性验证,这可能会失败。