验证特定电子邮件特定域设计 3 ruby rails 4

Validation specific email specific domain devise 3 ruby on rails 4

我之前发布了一个关于如何使用验证只允许使用以@grenoble-em.com 结尾的电子邮件地址的访问者能够在我的网站上注册的问题。我正在使用 devise 3 和 Rails 4。我对它还很陌生,如果有任何答案,我将不胜感激。这是我的用户模型。

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  has_attached_file :picture, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
  validates_attachment_content_type :picture, :content_type => /\Aimage\/.*\Z/
  validates :email, uniqueness: true
end

提前谢谢大家。你们在帮助人们方面做得很好 :)

如果您只想验证电子邮件是否包含该域,而不是其他,您可以添加此验证器:

class User < ActiveRecord::Base
  validates_format_of :email, with: /\@grenoble-em\.com/, message: 'You should have an email from grenoble-em.com'
end

您可以在此处阅读有关所有验证器的更多信息:http://api.rubyonrails.org/classes/ActiveModel/Validations/HelperMethods.html