Forum: Ruby on Rails Ordering of messages in error_messages_for

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Wes G. (Guest)
on 2009-03-09 17:07
Is there any way to control the ordering of the error messages in the
output of error_messages_for()?

I want to make the error messages match the order of the form elements
in my form, and although the validates_presence_of directive has these
attributes in that order, they still show up in seemingly random order.

Any way to control this?

Thanks,
Wes
Frederick C. (Guest)
on 2009-03-09 17:19
(Received via mailing list)
On 9 Mar 2009, at 15:07, Wes G. wrote:

>
> Is there any way to control the ordering of the error messages in the
> output of error_messages_for()?

At the end of the day the errors are stored in a hash and thus with no
guarenteed order. This might be a good time to replace
error_messages_for with code of your own (if you poke inside the
source for it you'll see that it's pretty simple).

Fred
Wes G. (Guest)
on 2009-03-09 17:32
Fred,

I already have a custom version of error_messages_for, so yeah, that's
cool.

Thx. for the quick response.

Wes
Greg D. (Guest)
on 2009-03-09 19:08
(Received via mailing list)
On Mon, Mar 9, 2009 at 10:07 AM, Wes G.
<removed_email_address@domain.invalid> wrote:
>
> Is there any way to control the ordering of the error messages in the
> output of error_messages_for()?
>
> I want to make the error messages match the order of the form elements
> in my form, and although the validates_presence_of directive has these
> attributes in that order, they still show up in seemingly random order.
>
> Any way to control this?


I put my error messages right under the fields they are for:

<%= f.username :text_field %>
<% if @user.errors['username'] -%>
<br /><span class="error"><%= @user.errors['username'] %></span>
<% end -%>

I did not like error_messages_for() when I first tried and I've since
found most of my clients don't care for it either.



--
Greg D.
http://destiney.com/
Freddy A. (Guest)
on 2009-03-26 19:36
(Received via mailing list)
You can do this:

<%= f.text_field :email, :label => "Email Address", :required => true
%>
<em><%= error_message_on @user, :email %></em>
This topic is locked and can not be replied to.