Hi
I'm working on an issue described in this ticket: https://rails.lighthouseapp.com/projects/8994/tickets/2415-accepts_nested_attributes_for-doest-work-when-nested_attributes-hash-has-an-id-entry#ticket-2415-6
I've a nested form, in which the user can either create a new entry or choose an existing one. Choosing an existing entry in a nested form is a problem, because the association in the join table won't be created (in Rails 2.3.6 the ActiveRecord::RecordNotFound exception will be raised as described in the ticket).
I had a look at the patch in the ticket and amended it, so when the id in nested attributes is set, I read the record from the db and create the association in the join table. Unfortunately, creating the association is not working properly.
here's my code: reflection = self.class.reflect_on_association(association_name) # fetch the record record = eval("#{reflection.klass.name}.find(#{attributes['id']})") if record.nil? raise_nested_attributes_record_not_found(association_name, attributes['id']) end
# create the association association.send(:add_record_to_target_with_callbacks, record) unless association.loaded? assign_to_or_mark_for_destruction(record, attributes, options[:allow_destroy])
The last two lines doesn't create the association. I looked at the active record code but haven't found a way to create the association only. All the build/create/update methods will create a new record.
Would be nice if someone who's familiar with the active record code could help me out! Let me know if you need more information on this.
Thanks, David