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?

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

my nested form looks like

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

  <table>
   <tr>
       <td> <%= doc_form.label :"Specialized Field: " %> </td>
       <td> <%= doc_form.text_field :specialize %> </td>
    </tr>
  <tr>
       <td> <%= doc_form.label :"Medical Center Name: " %> </td>
       <td> <%= doc_form.text_field :working_for %> </td>
    </tr>
    <% 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

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

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 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'.