Rails教程第6章创建用户错误" SELECT 1 AS AS FROM" users"哪里更低("用户"。"电子邮件")=更低(' leewhite128@gmail.com')限制1"

时间:2015-04-30 00:11:46

标签: ruby-on-rails ruby railstutorial.org

我正在关注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

2 个答案:

答案 0 :(得分:0)

根据您提供的内容,您所获得的错误是因为您的数据库中已有一位用户使用了该电子邮件地址,并且您在{{1}上进行了唯一性验证}字段,因此您无法使用相同的电子邮件保存另一条记录。

这是我最好的猜测,如果它错了,就像别人提出要求并提供更多细节一样。感谢。

答案 1 :(得分:0)

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

format: { with: /VALID_EMAIL_REGEX/ },

应该是

format: { with: VALID_EMAIL_REGEX },