How to display error in view for an instance

Hello,

How can we display the errors in a view if that view contains one instance of type member and an array also of instances from the same model. In my app I have a form which accepts a member data for registration for a family on the top and at the end of the screen in the same form I accept the data for the rest of the family members which also belong to the same model. After the validation I get the errors for '@member' but not the '@familt_members'. @member is created as

@member=Member.new

and @member_list is created as :

@member_list= 5.times{ @member_list<<Member.new     }

After the validations how do I access the errors related to each instance in the array?

thanks.

Hello,

How can we display the errors in a view if that view contains one instance of type member and an array also of instances from the same model. In my app I have a form which accepts a member data for registration for a family on the top and at the end of the screen in the same form I accept the data for the rest of the family members which also belong to the same model. After the validation I get the errors for '@member' but not the '@familt_members'. @member is created as

@member=Member.new

and @member_list is created as :

@member_list= 5.times{ @member_list<<Member.new    }

After the validations how do I access the errors related to each instance in the array?

What do you see if you iterate over the members of the array, like this (in a view, just for debugging purposes)?

  <%- @member_list.each do |member| %>   <%= member.inspect %>   <%- end %>

I am guessing that each member will carry its own hash of errors, and you should see them when you do this. Then it's just a matter of iterating them in your view to build the error list per member.

Walter

Walter Davis wrote in post #1067201:

instance in the array?

What do you see if you iterate over the members of the array, like this (in a view, just for debugging purposes)?

  <%- @member_list.each do |member| %>   <%= member.inspect %>   <%- end %>

I am guessing that each member will carry its own hash of errors, and you should see them when you do this. Then it's just a matter of iterating them in your view to build the error list per member.

Walter

This is what I get:

#<Member family_member_id: nil, member_first_name: "", member_last_name: "", security_question_answer: nil, created_at: nil, updated_at: nil, member_gender: nil, member_dob: nil, security_question_id: nil, native_language: "", family_id: nil, is_child: false, is_family_head: false, member_middle_name: "", member_email: nil, relation_name: "", marital_status: nil>

But nothing about errors. And following code in the loop does not show anything.

<% member.errors.full_messages.each do |msg| %>

      <span style="color:red;"><%= msg %></span>     <% end %>

Walter Davis wrote in post #1067201:

instance in the array?

What do you see if you iterate over the members of the array, like this (in a view, just for debugging purposes)?

<%- @member_list.each do |member| %> <%= member.inspect %> <%- end %>

I am guessing that each member will carry its own hash of errors, and you should see them when you do this. Then it's just a matter of iterating them in your view to build the error list per member.

Walter

This is what I get:

#<Member family_member_id: nil, member_first_name: "", member_last_name: "", security_question_answer: nil, created_at: nil, updated_at: nil, member_gender: nil, member_dob: nil, security_question_id: nil, native_language: "", family_id: nil, is_child: false, is_family_head: false, member_middle_name: "", member_email: nil, relation_name: "", marital_status: nil>

But nothing about errors. And following code in the loop does not show anything.

<% member.errors.full_messages.each do |msg| %>

     <span style="color:red;"><%= msg %></span>    <% end %>

At this point in the cycle, have you already tried to save these members? Or are they being saved through an association? I don't think the errors are populated on any AR object until you actually try to save, because those validations only run within the save cycle.

Walter