aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/base.rb
diff options
context:
space:
mode:
authorEmilio Tagua <miloops@gmail.com>2009-10-05 15:24:08 -0300
committerEmilio Tagua <miloops@gmail.com>2009-10-05 15:24:08 -0300
commit65f055a3ed790d41aeca8d4ca7f3771b05cf544f (patch)
treefa82844e2b1734fee8297ec683811b073a8312f0 /activerecord/lib/active_record/base.rb
parent3747f896a1b727d67e6022001007e5f58b24a267 (diff)
downloadrails-65f055a3ed790d41aeca8d4ca7f3771b05cf544f.tar.gz
rails-65f055a3ed790d41aeca8d4ca7f3771b05cf544f.tar.bz2
rails-65f055a3ed790d41aeca8d4ca7f3771b05cf544f.zip
Added eager loading support to Relation and ActiveRecord#all.
Diffstat (limited to 'activerecord/lib/active_record/base.rb')
-rwxr-xr-xactiverecord/lib/active_record/base.rb17
1 files changed, 6 insertions, 11 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index 2fd3384877..60e69f020c 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -666,23 +666,18 @@ module ActiveRecord #:nodoc:
def all(*args)
options = args.extract_options!
-
if options.empty? && !scoped?(:find)
relation = arel_table
else
+ relation = construct_finder_arel(options)
include_associations = merge_includes(scope(:find, :include), options[:include])
- # if include_associations.any? && references_eager_loaded_tables?(options)
- # join_dependency = JoinDependency.new(self, include_associations, options[:joins])
-
- # relation = construct_finder_arel_with_included_associations(options, join_dependency)
-
- # relation.preload(include_associations)
- # else
- relation = construct_finder_arel(options)
- if include_associations.any?
+ if include_associations.any?
+ if references_eager_loaded_tables?(options)
+ relation.eager_load(include_associations)
+ else
relation.preload(include_associations)
- # end
+ end
end
end
relation