diff options
Diffstat (limited to 'lib/arel/relations/join.rb')
-rw-r--r-- | lib/arel/relations/join.rb | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/arel/relations/join.rb b/lib/arel/relations/join.rb index b3452968e4..b7c5c3f39b 100644 --- a/lib/arel/relations/join.rb +++ b/lib/arel/relations/join.rb @@ -27,7 +27,7 @@ module Arel end def attributes - (externalize(relation1).attributes + + @attributes ||= (externalize(relation1).attributes + externalize(relation2).attributes).collect { |a| a.bind(self) } end @@ -44,9 +44,11 @@ module Arel end def relation_for(attribute) - [externalize(relation1).relation_for(attribute), externalize(relation2).relation_for(attribute)].max do |r1, r2| + [ + externalize(relation1).relation_for(attribute), + externalize(relation2).relation_for(attribute) + ].max do |r1, r2| a1, a2 = r1 && r1[attribute], r2 && r2[attribute] - attribute / a1 <=> attribute / a2 end end |