Nested Model Forms

I’m trying to get a multi level nested form model working but have hit a problem. In one of my models, I have a habtm association and it’s throwing an error on a nested form and these are check boxes with a method of ‘time_unit_ids’.

The nested forms work without the habtm (time_unit_ids) so things are pretty much set up okay.

Here’s the set up (obviously well and truly stripped back). Hopefully someone can see something I’m missing.

CIA -ants

Models:

event_category: has_many :event_types accepts_nested_attributes_for :event_types

event_type: has_and_belongs_to_many :time_units has_many :events belongs_to :event_category accepts_nested_attributes_for :events

event: belongs_to :event_type

controller new action has …

    @event_category.event_types.build
    @event_category.event_types[0].events.build

Forms:
  event_categories/new.html.erb
  <% form ...... do |form| %>
   <% form.fields_for :event_types do |event_type_form| %>
     <% event_type_form.fields_for :events do |event_form| %>

       <% @time_units.each do |time_unit| %>
          <% name = [time_unit.name](http://time_unit.name); id = [time_unit.id](http://time_unit.id) %>
            <%= event_form.check_box 'time_unit_ids[]', { :id => name }, [time_unit.id](http://time_unit.id) %>

          <% end %>

undefined method `time_unit_ids[]' for #<EventType:0xb6fa13b8>

I fear I may need to do this but it’s not ideal …

<%= check_box_tag ‘event_category[event_types_attributes][0][time_unit_ids]’, time_unit.id,

          { :id => name } %>