From 7921a73acda62c3208b173858a40221cb33f9ff8 Mon Sep 17 00:00:00 2001 From: Pratik Naik Date: Sun, 17 Jan 2010 04:20:11 +0530 Subject: Use relations to build scope for named scopes --- activerecord/lib/active_record/named_scope.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/named_scope.rb b/activerecord/lib/active_record/named_scope.rb index bc04ffc089..3f5cf68fd2 100644 --- a/activerecord/lib/active_record/named_scope.rb +++ b/activerecord/lib/active_record/named_scope.rb @@ -124,7 +124,7 @@ module ActiveRecord end end - delegate :scopes, :with_scope, :scoped_methods, :to => :proxy_scope + delegate :scopes, :with_scope, :scoped_methods, :unscoped, :to => :proxy_scope def initialize(proxy_scope, options, &block) options ||= {} @@ -186,6 +186,11 @@ module ActiveRecord end protected + + def relation + @relation ||= unscoped.apply_finder_options(proxy_options) + end + def proxy_found @found || load_found end @@ -195,7 +200,7 @@ module ActiveRecord if scopes.include?(method) scopes[method].call(self, *args) else - with_scope({:find => proxy_options, :create => proxy_options[:conditions].is_a?(Hash) ? proxy_options[:conditions] : {}}, :reverse_merge) do + with_scope(relation, :reverse_merge) do method = :new if method == :build if current_scoped_methods_when_defined && !scoped_methods.include?(current_scoped_methods_when_defined) with_scope current_scoped_methods_when_defined do -- cgit v1.2.3