我正在使用设计,并且我尝试添加email_confirmation输入,我希望我的用户输入两次他们的电子邮件地址,以确保他们没有犯任何错误(如password_confirmation输入)。我已经搜索了几天的解决方案,但我能找到的是如何"验证"电子邮件地址。验证如何工作?任何答案/建议将不胜感激。
答案 0 :(得分:1)
要确认其电子邮件地址,请将字段email_confirmation
添加到表单:
运行rails generate devise:views
,以便在应用程序中提供设计视图。
将email_confirmation
添加到设计表单。
然后允许将此参数传递给设计: https://github.com/plataformatec/devise#strong-parameters
最后一步是将验证添加到User
模型(或您使用设计的模型):
validates :email, confirmation: true
答案 1 :(得分:0)
您需要使用正则表达式验证。这样的事情可以解决问题:
validates :email,
format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, message: 'Invalid email' }
假设通过“验证”您的意思是“检查用户输入的内容看起来像是有效的电子邮件”。
还有一个额外的验证步骤,大多数应用都没有采取这种做法,它会检查电子邮件不仅看起来像是有效的电子邮件,而且实际上 是现实生活中存在的电子邮件地址。如果这就是你所追求的,请查看https://github.com/kamilc/email_verifier
答案 2 :(得分:0)
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\-.]+\.[a-z]+\z/i
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }