Rails 教程第 6 章创建用户错误 "SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('leewhite128@gmail.com') LIMIT 1"

Rails Tutorial Chapter 6 create user error "SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('leewhite128@gmail.com') LIMIT 1"

我正在学习 rails 教程,当我尝试通过 rails 控制台创建用户时,出现此错误

SELECT  1 AS one FROM "users"  WHERE LOWER("users"."email") = LOWER('leewhite128@gmail.com') LIMIT 1

这是我的用户模型

class User < ActiveRecord::Base
  before_save { self.email = email.downcase }

  validates :name, presence: true,     length: { maximum: 50 } 

  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence: true,
    length: { maximum: 255 },
    format: { with: /VALID_EMAIL_REGEX/ },
    uniqueness: { case_sensitive: false }

  has_secure_password
  validates :password, length: { minimum: 6 }
end

根据您提供的内容,您收到的错误是因为您的数据库中已经有一个用户使用该电子邮件地址,并且您对 :email 字段进行了唯一性验证,因此您可以'不要用相同的电子邮件保存另一条记录。

这是我最好的猜测,如果有误,请按照其他人的要求进行操作并提供更多详细信息。谢谢

我不确定这是否能解决您的问题,但我认为这一行:

format: { with: /VALID_EMAIL_REGEX/ },

应该是

format: { with: VALID_EMAIL_REGEX },