aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/reflection.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/reflection.rb')
-rw-r--r--activerecord/lib/active_record/reflection.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/reflection.rb b/activerecord/lib/active_record/reflection.rb
index 32b9a2aa87..5e8fc104cb 100644
--- a/activerecord/lib/active_record/reflection.rb
+++ b/activerecord/lib/active_record/reflection.rb
@@ -154,6 +154,11 @@ module ActiveRecord
@klass ||= active_record.send(:compute_type, class_name)
end
+ def initialize(macro, name, options, active_record)
+ super
+ @collection = [:has_many, :has_and_belongs_to_many].include?(macro)
+ end
+
# Returns a new, unsaved instance of the associated class. +options+ will
# be passed to the class's constructor.
def build_association(*options)
@@ -256,9 +261,6 @@ module ActiveRecord
# association. Returns +true+ if the +macro+ is one of +has_many+ or
# +has_and_belongs_to_many+, +false+ otherwise.
def collection?
- if @collection.nil?
- @collection = [:has_many, :has_and_belongs_to_many].include?(macro)
- end
@collection
end