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.