I know there have been threads on this before but I was thinking
shouldn’t multiple collection_select automatically update habtm
relations when you update_attributes?
In order to get multiple collection_select to work I use:
collection_select(:user, :group_ids, Group.find(:all), :id,
:name,{},{:multiple=>‘’,:name=>‘group[id][]’})
In fact if I don’t set the :name field like this I get an error:
undefined method each' for #<Group:0x40ad2ee4> /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/base.rb:1501:in
method_missing’
which suggests that ActiveRecord is expecting to loop through this list
of groups. However with the :name field set as above the error goes
away, but the habtm relation doesn’t get updated.
Actually as I was writing this I just worked out and tested the
solution, what’s needed is the following:
collection_select(:user, :group_ids, Group.find(:all), :id,
:name,{},{:multiple=>‘’,:name=>‘user[group_ids][]’})
Now this is something that should go in the rails recipes book!
It would rock even harder if the created_on stuff held for the habtm
join table as well …
I made a doc patch and submitted it:
http://dev.rubyonrails.org/ticket/4837
CHEERS> SAM