如何在Rails 4中确认(不验证)带有设计的电子邮件地址?

时间:2015-11-02 22:09:38

标签: ruby-on-rails ruby-on-rails-4 devise

我正在使用设计,并且我尝试添加email_confirmation输入,我希望我的用户输入两次他们的电子邮件地址,以确保他们没有犯任何错误(如password_confirmation输入)。我已经搜索了几天的解决方案,但我能找到的是如何"验证"电子邮件地址。验证如何工作?任何答案/建议将不胜感激。

3 个答案:

答案 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 }