How to display validation errors in nested form

Hi All,
I have a nested form
OUTER FORM for :doctor

Hi All,
I have a nested form
OUTER FORM for :doctor
INNER FORM for :user

I am having problem is displaying the validation errors for both
doctor and user model. Any idea about how I should be doing this.

Thanks alot in advance.

You can’t have a form inside of another one. Maybe I am
misunderstanding?

my nested form looks like

<% form_for :doctor, :url => url do |doc_form| %>

<% doc_form.fields_for :user, :url => url do |f| %>
   <tr>
       <td> <%= f.label :"First Name: " %> </td>
       <td> <%= f.text_field :fname %> </td>
    </tr>
              .....................

I want to display validation errors for both doctor and user…my
create action in the controller looks like

def create
doc_attr = params[:doctor]
user_attr = doc_attr.delete(:user)
new_doctor = Doctor.new(doc_attr)
new_doctor.user = User.new(user_attr)
@saved = new_doctor.save!

if @saved == true
  flash[:notice] = "Registration Successful"
  redirect_to login_path()
else
  render :action => 'new'
end

end

Thank you

<%= doc_form.label :"Specialized Field: " %> <%= doc_form.text_field :specialize %>
<%= doc_form.label :"Medical Center Name: " %> <%= doc_form.text_field :working_for %>

Instead of having to manually create your child user at the controller-
level, have a look at this:

http://weblog.rubyonrails.org/2009/1/26/nested-model-forms

And the API documentation is at:

http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

HTH

On Tue, Oct 12, 2010 at 5:04 PM, pepe [email protected] wrote:

You can’t have a form inside of another one. Maybe I am
misunderstanding?

you can have fields_for to nest a “form” for a child object

I thought he meant he had 2 form tags, one inside of another.

I am pretty sure you have have nested forms…:slight_smile:

I think you might be missing something in your models.

In the Doctor model you should have:

has_many :users
accepts_nested_attributes_for :users

In the User model you should have:

belongs_to :doctor

I think I’ve run into the same problem before and it was due to the
fact that I was missing the ‘accepts_nested_attributes_for’.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs