From e9ebf8b898e0dba4ca62cca7eb26987a9117a20e Mon Sep 17 00:00:00 2001 From: Pratik Naik Date: Sun, 3 Jan 2010 03:56:21 +0530 Subject: Cache Relation#to_sql --- activerecord/lib/active_record/relation.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'activerecord/lib/active_record/relation.rb') diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index c828c0b751..31c7acf346 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -2,7 +2,6 @@ module ActiveRecord class Relation include QueryMethods, FinderMethods, CalculationMethods - delegate :to_sql, :to => :relation delegate :length, :collect, :map, :each, :all?, :to => :to_a attr_reader :relation, :klass @@ -157,7 +156,7 @@ module ActiveRecord end def reset - @first = @last = @create_scope = @joined_tables = nil + @first = @last = @create_scope = @joined_tables = @to_sql = nil @records = [] self end @@ -180,6 +179,10 @@ module ActiveRecord @primary_key ||= table[@klass.primary_key] end + def to_sql + @to_sql ||= @relation.to_sql + end + protected def method_missing(method, *args, &block) -- cgit v1.2.3