Hope someone can tell me what''s up, because this has me baffled. I have an Image model, and a Provider model. Both are defined as "has_and_belongs_to_many" relating to each other. In my image form partial, I have a bit of AJAX generating the provider_ids array dynamically from a provider AJAX search on the same page. So for example, each time I click on a provider name that comes up in the search, it adds a line like this to the form markup: <input type="hidden" name="image[provider_ids][]" value="3"> On hitting the submit button, Rails saves the Image model as expected, and creates all the entries in my images_providers table. (consisting of just image_id and provider_id) The problem comes in when editing an image. On the edit page, I have the same functionality as above available, but the existing provider entries are already displayed on the page. So I''ll have in the form: <input type="hidden" name="image[provider_ids][]" value="3"> <input type="hidden" name="image[provider_ids][]" value="5"> Now no matter what I do, I cannot get Rails to update the Image on submit. I''m using a dead simple method: def update @image = Image.find(params[:id]) respond_to do |format| if @image.update_attributes(params[:image]) format.html { redirect_gallery_edit } else format.html { render :action => "edit" } end end end However, when this runs, Rails spits out the following: Provider(#36927920) expected, got Provider(#39471020) If I update an image with NO linked providers, everything is fine. I''m stumped. Here''s the last couple of lines from the trace, in case it''s helpful: activerecord (3.0.0) lib/active_record/associations/ association_proxy.rb:260:in `raise_on_type_mismatch'' activerecord (3.0.0) lib/active_record/associations/ association_collection.rb:522:in `block in remove_records'' activerecord (3.0.0) lib/active_record/associations/ association_collection.rb:522:in `each'' activerecord (3.0.0) lib/active_record/associations/ association_collection.rb:522:in `remove_records'' activerecord (3.0.0) lib/active_record/associations/ association_collection.rb:221:in `delete'' activerecord (3.0.0) lib/active_record/associations/ association_collection.rb:360:in `block in replace'' activerecord (3.0.0) lib/active_record/associations/ association_collection.rb:158:in `block in transaction'' activerecord (3.0.0) lib/active_record/connection_adapters/abstract/ database_statements.rb:139:in `transaction'' activerecord (3.0.0) lib/active_record/transactions.rb:204:in `transaction'' activerecord (3.0.0) lib/active_record/associations/ association_collection.rb:157:in `transaction'' activerecord (3.0.0) lib/active_record/associations/ association_collection.rb:359:in `replace'' activerecord (3.0.0) lib/active_record/associations.rb:1524:in `block in collection_accessor_methods'' activerecord (3.0.0) lib/active_record/associations.rb:1532:in `block in collection_accessor_methods'' activerecord (3.0.0) lib/active_record/base.rb:1548:in `block in attributes='' activerecord (3.0.0) lib/active_record/base.rb:1544:in `each'' activerecord (3.0.0) lib/active_record/base.rb:1544:in `attributes='' activerecord (3.0.0) lib/active_record/persistence.rb:127:in `block in update_attributes'' activerecord (3.0.0) lib/active_record/transactions.rb:289:in `block in with_transaction_returning_status'' activerecord (3.0.0) lib/active_record/connection_adapters/abstract/ database_statements.rb:139:in `transaction'' activerecord (3.0.0) lib/active_record/transactions.rb:204:in `transaction'' activerecord (3.0.0) lib/active_record/transactions.rb:287:in `with_transaction_returning_status'' activerecord (3.0.0) lib/active_record/persistence.rb:126:in `update_attributes'' -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.