我对当前应用程序的数据库设置有一个奇怪的问题。
当迁移没有问题时,但是当我尝试用一些测试数据来播种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
这样就可以知道用户创建失败的验证。

10-05 20:17
查看更多