我设置了Devise:可以在我的简单应用上验证,但如果它发现错误,我似乎无法获得注册注册表单。
User.rb:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
...
end
截至目前,我有一个带有标准名称/电子邮件/密码/年龄字段的注册表单,当我提交未失败的表单时,一切正常。
但是,如果我尝试创建一个我知道会失败的新用户(例如创建一个已经存在电子邮件的用户),它仍然会尝试创建用户,而不是重定向回到注册表单,它将继续加载下一页,就好像它是一个有效的用户!当然,在这一点上,我收到一个错误,因为它试图加载一个包含'current_user'代码的页面,并且该用户不存在。
我甚至在哪里开始追踪这个?不确定这是我安装Devise的方式,还是其他什么?请帮忙。谢谢!
答案 0 :(得分:2)
Haven没有使用过验证,但您可以随时使用自己的一些验证:
validates :email, uniqueness: true
validates :email, presence: true
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, message: "valid email please"
答案 1 :(得分:2)
关于电子邮件的格式,我建议您使用devise.rb。 在那里你可以设置一个正则表达式的电子邮件,不需要放入模型。
config.email_regexp = /\A[^@]+@[^@]+\z/