0
我在我的应用程序中创建了一个名为checkout的自定义方法。我创建了一个订单(这是我的产品添加到我的“购物车”后完成的),将其分配给我的客户,然后前往我的结账屏幕,我确认这些项目并输入他们的客户订单号并完成订单(提交) 。Rails不在自定义方法中的窗体上显示错误消息
除非不显示错误信息,否则一切都很好。当出现错误时,我能够显示闪存错误通知(在complete_order方法中看到),但它没有像普通格式那样指定细节。如果客户订单号对于该客户不唯一,则应出现错误消息。
下面是自定义方法(checkout)的相关代码。
订货型号:
validates_uniqueness_of :customer_order_number, :scope => :client_id
Orders_controller:
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
并在结账形式来看:
<% 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 %>
任何想法如何显示特定的错误消息?
太简单了!谢谢! – slythic 2010-04-14 14:50:04