aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/CHANGELOG2
-rw-r--r--activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb2
-rwxr-xr-xactiverecord/lib/active_record/base.rb9
3 files changed, 5 insertions, 8 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index a82f8a0013..5f0b4242d8 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Fixed that Base.table_name would expect a parameter when used in has_and_belongs_to_many joins [Anna Lissa Cruz]
+
* Fixed that nested transactions now work by letting the outer most transaction have the responsibilty of starting and rolling back the transaction.
If any of the inner transactions swallow the exception raised, though, the transaction will not be rolled back. So always let the transaction
bubble up even when you've dealt with local issues. Closes #231 and #340.
diff --git a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
index 0da243786e..3f90d61e2d 100644
--- a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
+++ b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
@@ -5,7 +5,7 @@ module ActiveRecord
super(owner, association_name, association_class_name, association_class_primary_key_name, options)
@association_foreign_key = options[:association_foreign_key] || Inflector.underscore(Inflector.demodulize(association_class_name)) + "_id"
- association_table_name = options[:table_name] || @association_class.table_name(association_class_name)
+ association_table_name = options[:table_name] || @association_class.table_name
@join_table = join_table
@order = options[:order] || "t.#{@association_class.primary_key}"
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index a7347c4af5..8a0fab2252 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -473,13 +473,8 @@ module ActiveRecord #:nodoc:
# class Mouse < ActiveRecord::Base
# def self.table_name() "mice" end
# end
- def table_name(class_name = nil)
- if class_name.nil?
- class_name = class_name_of_active_record_descendant(self)
- table_name_prefix + undecorated_table_name(class_name) + table_name_suffix
- else
- table_name_prefix + undecorated_table_name(class_name) + table_name_suffix
- end
+ def table_name
+ table_name_prefix + undecorated_table_name(class_name_of_active_record_descendant(self)) + table_name_suffix
end
# Defines the primary key field -- can be overridden in subclasses. Overwritting will negate any effect of the