Tony Tony
2010-Apr-14 14:34 UTC
Rails does not display form error message on a custom method
Hi all, I''ve created a custom method called checkout in my app. I create an order (which is done my adding products to my "cart"), assign it to my client, and then I head to my checkout screen where I confirm the items and enter their customer order number and complete the order (submit). Everything works great except that it doesn''t display error messages. I''m able to display a flash error notice (seen in complete_order method) when things go wrong but it doesn''t specify the details like a normal form would. The error messages should appear if the customer order number is not unique for that client. Below is the custom method (checkout) related code. Order Model: [code] validates_uniqueness_of :customer_order_number, :scope => :client_id [/code] Orders_controller: [code] def checkout @order = current_order end def complete_order @order = current_order respond_to do |format| if @order.update_attributes(params[:order]) @order.complete #sets submitted datetime and state to ''complete'' flash[:notice] = ''Thank you! Your order is being processed.'' format.html { redirect_to( products_path ) } format.xml { head :ok } else flash[:error] = ''Please review your items'' #added to confirm an error is present format.html { redirect_to( checkout_path ) } format.xml { render :xml => @order.errors, :status => :unprocessable_entity } end end end [/code] And the form in the checkout view: [code] <% form_for @order, :url => { :controller => "orders", :action => "complete_order" } do |f| %> <%= f.error_messages %> <%= f.text_field :customer_order_number, :label => "Purchase Order Number" %> <p> <%= f.submit ''Complete Order'', :confirm => ''Are you sure?'' %> <small> or <%= link_to ''cancel'', current_cart_path %></small> </p> <% end %> [/code] Any idea how I can display the specific error messages? Thank you in advance! -Tony -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Tony Tony
2010-Apr-14 14:52 UTC
Re: Rails does not display form error message on a custom me
Tony Tony wrote:> > Any idea how I can display the specific error messages? > > Thank you in advance! -TonySolved thanks to Salil over in stackoverflow(http://stackoverflow.com/questions/2638215/rails-does-not-display-error-messages-on-a-form-in-a-custom-method). "Change redirect_to to render in else condition otherwise checkout method get called again & no error will displayed. else format.html { render :action => ''checkout'' }" Thanks Salil! -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.