user3463868
user3463868

Reputation: 35

Active Record Model Validation if email is blank or empty

In sign up page I want to validate user's email if user enter invalid email or email textbox left blank and want to show error message Enter your email address

My User Model:

VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX },
            uniqueness:  { case_sensitive: false }

With the above regex, I am validating email but do not know how to add and display error meesage.

Kindly help me. Thanks.

Upvotes: 0

Views: 1968

Answers (2)

Rajesh Omanakuttan
Rajesh Omanakuttan

Reputation: 6918

Just try:

VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, 
          :presence => {:message => "Enter your email address!" },
          :format => { :with => VALID_EMAIL_REGEX, :message => "Enter a valid Email address !"}
          :uniqueness => {:case_sensitive => false, :message => "Email already exists!"}

To view these error, use the default error helper provided by Rails (<%= f.error_messages %> ).

<%= form_for @user, :url => {:controller=>"users", :action => "sign_up" } do |f| %>  
   <%= f.error_messages %> 
   ---form fields and contents --
<%end%>

Hope it helps :)

Upvotes: 2

Pavan
Pavan

Reputation: 33542

For the Error Message,you can simply add message: 'your message'Just do like this.

If you want to provide a separate Error Messages,then you have to split the validations.

validates :email, presence: true, :format=> { :with=> VALID_EMAIL_REGEX , :message=> 'Enter your Email Address' }

validates :email, uniqueness: {:case_sensitive => false, :message => 'Please provide a valid Email' }

Upvotes: 0

Related Questions