ruby on rails - Form error produces program error instead of rendering rendering new view -


i have standard form object , 1 of fields has minimum length validation. however, when submitting form string short, program error referring if @message.save! in controller method:

activerecord::recordinvalid in invitationscontroller#create validation failed: message short (minimum 25 characters)

so program error instead of renders new page again error message. causing behavior?

def create   ... several variables set first ...   if @message.save!     if !@hem.nil?       messagemailer.hem(@message).deliver_now     elsif @hem.nil?       messagemailer.hem(@message).deliver_now     end     if logged_in_user?       flash[:success] = "yeah1"     else       flash[:success] = "yeah2"     end     redirect_to messages_path   else     render 'new'  # tried adding "and return"   end end 

the form:

<%= form_for @message, url: messages_path |f| %>   <%= render 'shared/error_messages', object: f.object %>   ...etc... 

use save rather save! if want form rendered errors.

the save method returns true if validations succeed or false if validations fail, whereas save! throw recordinvalid exception must explicitly handled via rescue. use of save! not returning boolean value think does.

check rails api documentation additional details.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -