From 89c79b8b9537b5ae8a4d3307e719b6ff6acef6f2 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Mon, 25 Jun 2007 22:42:19 +0000 Subject: Fix polymorphic has_one associations declared in an abstract class. Closes #8638. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7119 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/lib/active_record/associations.rb | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index 18f4580f45..dd7464432a 100755 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -1681,7 +1681,7 @@ module ActiveRecord as_extra ] - when reflection.macro == :has_many && reflection.options[:as] + when reflection.options[:as] && [:has_many, :has_one].include?(reflection.macro) " LEFT OUTER JOIN %s ON %s.%s = %s.%s AND %s.%s = %s" % [ table_name_and_alias, aliased_table_name, "#{reflection.options[:as]}_id", @@ -1689,14 +1689,6 @@ module ActiveRecord aliased_table_name, "#{reflection.options[:as]}_type", klass.quote_value(parent.active_record.base_class.name) ] - when reflection.macro == :has_one && reflection.options[:as] - " LEFT OUTER JOIN %s ON %s.%s = %s.%s AND %s.%s = %s " % [ - table_name_and_alias, - aliased_table_name, "#{reflection.options[:as]}_id", - parent.aliased_table_name, parent.primary_key, - aliased_table_name, "#{reflection.options[:as]}_type", - klass.quote_value(reflection.active_record.base_class.name) - ] else foreign_key = options[:foreign_key] || reflection.active_record.name.foreign_key " LEFT OUTER JOIN %s ON %s.%s = %s.%s " % [ -- cgit v1.2.3