aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations.rb
diff options
context:
space:
mode:
authoreileencodes <eileencodes@gmail.com>2014-06-09 13:53:41 -0400
committereileencodes <eileencodes@gmail.com>2014-06-09 19:16:00 -0400
commit9eb87fbf15b2bb68d9d16c83dfe46f88d89a915c (patch)
treeab90e12db40fe7adc8c9c4a39add6bde87c7f436 /activerecord/lib/active_record/associations.rb
parent66eb847c9dc571421ca2d91bb7de23a788ecd76b (diff)
downloadrails-9eb87fbf15b2bb68d9d16c83dfe46f88d89a915c.tar.gz
rails-9eb87fbf15b2bb68d9d16c83dfe46f88d89a915c.tar.bz2
rails-9eb87fbf15b2bb68d9d16c83dfe46f88d89a915c.zip
Abstract away use of HABTM macro
By having the `:has_and_belongs_to_many` macro in the `@collection` we are punishing `:has_many` associations because it has to allocate the array and check the macro. @collection is returned to `macro == :has_many` and a new reflection class `HABTMReflection` is created to handle this case instead.
Diffstat (limited to 'activerecord/lib/active_record/associations.rb')
-rw-r--r--activerecord/lib/active_record/associations.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb
index 07dfc448e7..1d1201a838 100644
--- a/activerecord/lib/active_record/associations.rb
+++ b/activerecord/lib/active_record/associations.rb
@@ -1577,7 +1577,7 @@ module ActiveRecord
scope = nil
end
- habtm_reflection = ActiveRecord::Reflection::AssociationReflection.new(:has_and_belongs_to_many, name, scope, options, self)
+ habtm_reflection = ActiveRecord::Reflection::HABTMReflection.new(:has_and_belongs_to_many, name, scope, options, self)
builder = Builder::HasAndBelongsToMany.new name, self, options