aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/base.rb
diff options
context:
space:
mode:
authorEmilio Tagua <miloops@gmail.com>2009-08-19 17:45:13 -0300
committerEmilio Tagua <miloops@gmail.com>2009-08-19 17:45:13 -0300
commit54fcbb881d1d707d65d38cd30f50049023448832 (patch)
treeed904ffbcf5f6d60cea2ffa00fc95062ea498aa3 /activerecord/lib/active_record/base.rb
parentb32474020c4ec2f2b9c78bd580466c494eac6eb3 (diff)
downloadrails-54fcbb881d1d707d65d38cd30f50049023448832.tar.gz
rails-54fcbb881d1d707d65d38cd30f50049023448832.tar.bz2
rails-54fcbb881d1d707d65d38cd30f50049023448832.zip
Make sure join association methods are called once.
Diffstat (limited to 'activerecord/lib/active_record/base.rb')
-rwxr-xr-xactiverecord/lib/active_record/base.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index dc439ff92e..b0286f7409 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -1815,11 +1815,11 @@ module ActiveRecord #:nodoc:
join_dependency = ActiveRecord::Associations::ClassMethods::JoinDependency.new(self, joins, nil)
relation = arel_table.relation
join_dependency.join_associations.map { |association|
- if association.relation.is_a?(Array)
- [Arel::InnerJoin.new(relation, association.relation.first, association.association_join.first).joins(relation),
- Arel::InnerJoin.new(relation, association.relation.last, association.association_join.last).joins(relation)].join()
+ if (association_relation = association.relation).is_a?(Array)
+ [Arel::InnerJoin.new(relation, association_relation.first, association.association_join.first).joins(relation),
+ Arel::InnerJoin.new(relation, association_relation.last, association.association_join.last).joins(relation)].join()
else
- Arel::InnerJoin.new(relation, association.relation, association.association_join).joins(relation)
+ Arel::InnerJoin.new(relation, association_relation, association.association_join).joins(relation)
end
}.join(" ")
end