error_messages_for question..

Instead of

<%= error_messages_for ‘customer’ %>

which is telling error_messages_for to display errors for the string ‘customer’, which I don’t expect to ever work, you should probably use

<%= error_messages_for @customer %>

assuming that your controller action sets @customer for use by the view. If that’s not the case, could you show us the code for your action?

Regards, Craig

Craig Demyanovich wrote:

Instead of

<%= error_messages_for 'customer' %>

which is telling error_messages_for to display errors for the string 'customer', which I don't expect to ever work, you should probably use

<%= error_messages_for @customer %>

assuming that your controller action sets @customer for use by the view. If that's not the case, could you show us the code for your action?

Regards, Craig

Thank Craig for the reply. I did as you said but ended up getting error "@<Customer not allowed" something like this, so I instead did the other way: def checkout customer = Customer.new end

and then: <%=error_messages_for 'customer'%>

it worked but I get ugly underline in customer = Customer.new saying that customer hasn't been used. Also I have made .css file for the flash[:notice] but its not getting applied to the generated error message while it does to other error msgs. By the way the above mentioned checkout action is exactly as I've put in the controller and in the view as I've mentioned in my 1st post. Thanks.

error_messages_for ‘customer’

by convention looks for @customer. In your controller action, you need to do

def checkout @customer = Customer.new end

Once you have error_messages_for working, you can view the source of your page to see that error_messages_for generates specific markup for the errors.

1 error prohibited this billing plan from being saved

There were problems with the following fields:

  • Name can't be blank

(Of course, the text in your error message(s) will be different.) Knowing the markup, you should be able to style it as you like.

Regards, Craig