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