Abstract base class for AggregateReflection and AssociationReflection that describes the interface available for both of those classes. Objects of AggregateReflection and AssociationReflection are returned by the Reflection::ClassMethods.

Methods
Attributes
[R] active_record
Public Class methods
new(macro, name, options, active_record)
    # File activerecord/lib/active_record/reflection.rb, line 81
81:       def initialize(macro, name, options, active_record)
82:         @macro, @name, @options, @active_record = macro, name, options, active_record
83:       end
Public Instance methods
==(other_aggregation)

Returns true if self and other_aggregation have the same name attribute, active_record attribute, and other_aggregation has an options hash assigned to it.

     # File activerecord/lib/active_record/reflection.rb, line 117
117:       def ==(other_aggregation)
118:         other_aggregation.kind_of?(self.class) && name == other_aggregation.name && other_aggregation.options && active_record == other_aggregation.active_record
119:       end
belongs_to?()

Returns true if self is a belongs_to reflection.

     # File activerecord/lib/active_record/reflection.rb, line 126
126:       def belongs_to?
127:         macro == :belongs_to
128:       end
class_name()

Returns the class name for the macro. For example, composed_of :balance, :class_name => ‘Money‘ returns ‘Money‘ and has_many :clients returns ‘Client‘.

     # File activerecord/lib/active_record/reflection.rb, line 111
111:       def class_name
112:         @class_name ||= options[:class_name] || derive_class_name
113:       end
klass()

Returns the class for the macro. For example, composed_of :balance, :class_name => ‘Money‘ returns the Money class and has_many :clients returns the Client class.

     # File activerecord/lib/active_record/reflection.rb, line 105
105:       def klass
106:         @klass ||= class_name.constantize
107:       end
macro()

Returns the macro type. For example, composed_of :balance, :class_name => ‘Money‘ will return :composed_of or for has_many :clients will return :has_many.

    # File activerecord/lib/active_record/reflection.rb, line 93
93:       def macro
94:         @macro
95:       end
name()

Returns the name of the macro. For example, composed_of :balance, :class_name => ‘Money‘ will return :balance or for has_many :clients it will return :clients.

    # File activerecord/lib/active_record/reflection.rb, line 87
87:       def name
88:         @name
89:       end
options()

Returns the hash of options used for the macro. For example, it would return { :class_name => "Money" } for composed_of :balance, :class_name => ‘Money‘ or +{}+ for has_many :clients.

     # File activerecord/lib/active_record/reflection.rb, line 99
 99:       def options
100:         @options
101:       end