From 96bd936b64ae06d4c38e8de862521e22d7c809b9 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 21 Sep 2010 13:53:21 -0700 Subject: providing arel with column information when possible [#5392 state:resolved] --- activerecord/lib/active_record/associations.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'activerecord/lib/active_record/associations.rb') diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index 4bf206d589..acfc5ccf14 100644 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -2107,8 +2107,13 @@ module ActiveRecord def association_join return @join if @join - aliased_table = Arel::Table.new(table_name, :as => @aliased_table_name, :engine => arel_engine) - parent_table = Arel::Table.new(parent.table_name, :as => parent.aliased_table_name, :engine => arel_engine) + aliased_table = Arel::Table.new(table_name, :as => @aliased_table_name, + :engine => arel_engine, + :columns => klass.columns) + + parent_table = Arel::Table.new(parent.table_name, :as => parent.aliased_table_name, + :engine => arel_engine, + :columns => parent.active_record.columns) @join = case reflection.macro when :has_and_belongs_to_many @@ -2191,7 +2196,9 @@ module ActiveRecord end def relation - aliased = Arel::Table.new(table_name, :as => @aliased_table_name, :engine => arel_engine) + aliased = Arel::Table.new(table_name, :as => @aliased_table_name, + :engine => arel_engine, + :columns => klass.columns) if reflection.macro == :has_and_belongs_to_many [Arel::Table.new(options[:join_table], :as => aliased_join_table_name, :engine => arel_engine), aliased] -- cgit v1.2.3