aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/associations.rb')
-rwxr-xr-xactiverecord/lib/active_record/associations.rb10
1 files changed, 1 insertions, 9 deletions
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 " % [