Methods
Public Instance methods
[ show source ]
# File test/ar_model_adaptation.rb, line 12
12: def has_and_belongs_to_many_without_method_redefinition(association_id, options = {}, &extension)
13: options.assert_valid_keys(
14: :class_name, :table_name, :foreign_key, :association_foreign_key, :conditions, :include,
15: :join_table, :finder_sql, :delete_sql, :insert_sql, :order, :uniq, :before_add, :after_add,
16: :before_remove, :after_remove, :extend
17: )
18:
19: options[:extend] = create_extension_module(association_id, extension) if block_given?
20:
21: association_name, association_class_name, association_class_primary_key_name =
22: associate_identification(association_id, options[:class_name], options[:foreign_key])
23:
24: require_association_class(association_class_name)
25:
26: options[:join_table] ||= join_table_name(undecorated_table_name(self.to_s), undecorated_table_name(association_class_name))
27:
28: add_multiple_associated_save_callbacks(association_name)
29:
30: collection_accessor_methods(association_name, association_class_name, association_class_primary_key_name, options, HasAndBelongsToManyAssociation)
31:
32: add_association_callbacks(association_name, options)
33:
34: # deprecated api
35: deprecated_collection_count_method(association_name)
36: deprecated_add_association_relation(association_name)
37: deprecated_remove_association_relation(association_name)
38: deprecated_has_collection_method(association_name)
39: end
[ show source ]
# File test/ar_model_adaptation.rb, line 4
4: def remove_association *names
5: if names.length == 1
6: assocs = @inheritable_attributes[:associations].select{ |a| a.name == names[0] }
7: assocs.each {|assoc| @inheritable_attributes[:associations].delete assoc }
8: else
9: names.each {|assoc| remove_association(assoc)}
10: end
11: end