So is this the correct way: def create bad =[] begin @tour_type = TourType.new(params[:tour_type]) if @tour_type.save render :update do |page| page << "Redbox.close;" page.call "ProtoGrowl.success", "Succesfully created #{@tour_type.name}" end end rescue ActiveRecord::MultiparameterAssignmentErrors if params[:tour_type][:usual_price_number].blank? bad << "Usual price must not be 0.00" end rescue ActiveRecord::RecordInvalid bad << "#{@tour_type.errors.full_messages}" end unless bad.empty? flash.now[:error] = "#{bad.length} Errors have occured in this form" flash.now[:items] = bad render :update do |page| page[:flash].replace_html :partial => 'shared/flash_box' and return end end end
On Friday, February 25, 2011 9:37:05 PM UTC-6, bacrossland wrote: > > That is because you did not setup your error handling correctly. A rescue > block is done within a begin and end. You don't have that. You have rescues > just tossed into your code. The format should look something like this: > > begin > puts 10/0 #Bad code which will throw a ZeroDivisionError > rescue ZeroDivisionError > puts "Stop dividing by zero or the universe will end!" > end > > See the docs on error handling for more information. > > http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_exceptions.html > > Thanks, > B. > > On Fri, Feb 25, 2011 at 9:17 PM, Me <chab...@gmail.com> wrote: > >> I have this code below, it still gives me the error, >> ActiveRecord::MultiparameterAssignmentErrors. It is not catching the rescue >> for some reason. Ideas? >> >> def create >> bad =[] >> @tour_type = TourType.new(params[:tour_type]) >> if @tour_type.save >> render :update do |page| >> page << "Redbox.close;" >> page.call "ProtoGrowl.success", "Succesfully created #{@ >> tour_type.name}" >> end >> end >> rescue ActiveRecord::MultiparameterAssignmentErrors >> if params[:tour_type][:usual_price_number].blank? >> bad << "Usual price must not be 0.00" >> end >> >> rescue ActiveRecord::RecordInvalid >> bad << "#...@tour_type.errors.full_messages}" >> >> unless bad.empty? >> flash.now[:error] = "#{bad.length} Errors have occured in this form" >> flash.now[:items] = bad >> render :update do |page| >> page[:flash].replace_html :partial => 'shared/flash_box' and >> return >> end >> end >> end >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to rubyonra...@googlegroups.com. >> To unsubscribe from this group, send email to >> rubyonrails-ta...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/rubyonrails-talk?hl=en. >> > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.