From dcc486805e5d79bd10fd5dfe302302522d250e86 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 22 Dec 2004 13:00:15 +0000 Subject: Fixed that Base.table_name would expect a parameter when used in has_and_belongs_to_many joins [Anna Lissa Cruz] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@244 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/CHANGELOG | 2 ++ .../associations/has_and_belongs_to_many_association.rb | 2 +- activerecord/lib/active_record/base.rb | 9 ++------- 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 -- cgit v1.2.3