Simplest Nested form and ActiveRecord::AssociationTypeMismatch

Hi,

I'm struggling with the simplest nested form and I can't really find any information about my problem after an hour of googling.

Here is the thing:

I have a contract model that belongs_to a kid model, I'm trying to create a form for contract and create at the same time with nested form, the kid.

so my "new" action does that

      @contract = Contract.new       @contract.kid.build

my form is (I'm using haml for the template):

- form_for :contract, @contract,:url => { :action => "create" }, :html => {:multipart => true} do |contract|   - contract.fields_for :kid, @contract.kid do |kid|     = kid.text_field :name

  = contract.text_field :start   = contract.text_field :end

  = contract.submit "submit"

and at last my "create" action is:

@contract = Contract.new(params[:contract])

      if !@contract.save         respond_to do |format|           format.html { render :action => "new" }         end       else         respond_to do |format|           format.html { redirect_to(@kid) }         end

The problem is that I get an ActiveRecord::AssociationTypeMismatch on the line: @contract = Contract.new(params[:contract])

that says that it was expecting a Kid model with a particular hash and that instead it gets something with a different hash.

I can't figure out what's going on because if I try to create a Kid object on its own with params[:contract][:kid] it works, so I guess the kid object from the form is a good one.

Any clue anyone ? I would like to try to do the things right and as simple as possible without particular trick.

thanks

Any clue anyone ? I would like to try to do the things right and as simple as possible without particular trick.

This list is for questions about the development of ruby on rails, not it's use. Please use the rubyonrails-talk list for questions like this.

Having said that, looks like you've missed an accepts_nested_attributes_for declaration.