AdrienNhm
AdrienNhm

Reputation: 165

Validation specific email specific domain devise 3 ruby on rails 4

I previously posted a question about how to use validations to only allow visitor using an email address ending with @grenoble-em.com to be able to register on my website. I am using devise 3 and Rails 4. I am fairly new to it and would appreciate any answer. Here is my user model.

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

Thank you all in advance. You guys do a great job helping people :)

Upvotes: 1

Views: 1040

Answers (1)

ekampp
ekampp

Reputation: 1959

If you simply want to validate that the email contains that domain, and not much else, you can add this validator:

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

You can read more about all the validators here: http://api.rubyonrails.org/classes/ActiveModel/Validations/HelperMethods.html

Upvotes: 1

Related Questions