I haven't been able to get this to work for some reason, and its driving me nuts, and help is greatly appreciated. So here's the deal:
I'm have a table called Songs Each song has_many versions called Production_edits each production_edit has its own instrumentation. Instruments has_and_belongs_to_many Production_edits and vice versa. and i have my instruments_production_edits join table
In my new song form, you can add multiple production_edits, the only problem is that since I'm using HABTM checkboxes for the instrumentation, for every instrument i check, rails interprets it as a seperate production_edit.
Here's my view in for the new song form:
... <% form_for(@song, :url => {:action => 'create_song'}, :html => { :multipart => true } ) do |f|%> <%= error_messages_for :song %>...
(below is in my _production_edit partial) <% @production_edit = production_edit %> <% fields_for "song[production_edit_attributes]", production_edit do
production_edit_form| %>
<%= error_messages_for :production_edit %>
<%= production_edit_form.text_field :title %> (etc...) <% for instrument in Instrument.find(:all) %> <%= check_box_tag "song[production_edit_attributes][instrument_ids] ", instrument.id, production_edit.instruments.include?(instrument) %> <%= instrument.name %><br/> <% end %> <% end %>
Then in my song.rb model i have: ... validates_associated :production_edits
def production_edit_attributes=(production_edit_attributes) production_edit_attributes.each do |attributes| production_edits.build(attributes)
end end ...
When i fill out the form with each production_edit having more than one instrument i get something like this in my parameters:
"production_edit_attributes"=>[{"title"=>"", "instrument_ids"=>}, {"title"=>"", "instrument_ids"=>}, {"instrument_ids"=>["1"]}, {"instrument_ids"=>["3"]}, {"instrument_ids"=>["1"]}, {"instrument_ids"=>["2"]}]
when I'm actually trying to achieve this:
"production_edit_attributes"=>[{"title"=>"", "instrument_ids"=> ["1,"3"]}, {"title"=>"", "instrument_ids"=>["1","2"]}]
I've also tried something similar with a multiple select box, however I get the same result in the params. Any ideas? or let me know if I'm not clear enough on what I'm trying to do.