unknown attribute: version (nested forms)

I try to update a nested model (version) and get this error. any tips would be great!

my models: location has_many :versions

# view

<% form_for location do |location_form| %>     <ul class="location">       <li><%= location_form.label location.section %></li>       <li><%= location_form.label location.sub_section %></li>       <li><%= location_form.label location.place_holder %></li>     </ul>

    <div class="content-area">        <% location.versions.each do |version| %>           <div class="content" >             <% location_form.fields_for version do |version_form| %>               <%= version_form.label version.environment %>               <%= version_form.text_area :content %>             <% end %>           </div>       <% end %>       <%= submit_tag %>     </div>

  <% end %>

#controller

  def update     @location = Location.find(params[:id])     @location.update_attributes(params[:location]) #error: unknown attribute: version     redirect_to( locations_path )   end

# the params

{"location"=>{"version"=>{"content"=>"hello human. glass robot want you to join Glass"}}, "commit"=>"Save changes", "authenticity_token"=>"l59NxAeIeHnvaVt+1xQV2e9NpDIS8nPpQ4RY+hU0k7w=", "id"=>"2"}

Where's the error message?

ActiveRecord::UnknownAttributeError in LocationsController#update

unknown attribute: version

RAILS_ROOT: /home/oren/misc/projects/borderstylo/content

/opt/ruby-1.8.7-p72/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/ active_record/base.rb:2746:in `attributes=' /opt/ruby-1.8.7-p72/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/ active_record/base.rb:2742:in `each' /opt/ruby-1.8.7-p72/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/ active_record/base.rb:2742:in `attributes=' /opt/ruby-1.8.7-p72/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/ active_record/base.rb:2628:in `update_attributes' /home/oren/misc/projects/borderstylo/content/app/controllers/ locations_controller.rb:29:in `update'

Hi Oren,

Try this "accepts_nested_attributes_for :versions" in the location.rb file.

Cheers!

I already have this:

has_many :versions, :dependent => :destroy accepts_nested_attributes_for :versions

I use version and not :vorsion here: (since i believe i need to provide an object) location_form.fields_for version do |version_form|

could it be related to the issue?

This is how I did my nested forms (actually I have 3 forms nested):

<% form_for [@resource, @validity] do |f| %>   <% f.fields_for :timesheets do |t| %>     <% t.fields_for :values do |v| %>       R$ <%= v.text_field :value, :maxlength=>10 %>     <% end %>   <% end %>   <%= f.submit "Save" %> <% end %>

resource has_many validities validity has_many timesheets timesheet has_many values

It works now. I had 2 loops and had to remove the external one: <% location.versions.each do |version| %>

fields_for already create a loop on the children, so there is no need for another loop.

thanks!