aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/named_scope.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/named_scope.rb b/activerecord/lib/active_record/named_scope.rb
index 3f5cf68fd2..5a1cb7e769 100644
--- a/activerecord/lib/active_record/named_scope.rb
+++ b/activerecord/lib/active_record/named_scope.rb
@@ -99,6 +99,11 @@ module ActiveRecord
# assert_equal expected_options, Shirt.colored('red').proxy_options
def named_scope(name, options = {}, &block)
name = name.to_sym
+
+ if !scopes[name] && respond_to?(name, true)
+ raise ArgumentError, "Cannot define named_scope :#{name} because #{self.name}.#{name} method already exists."
+ end
+
scopes[name] = lambda do |parent_scope, *args|
Scope.new(parent_scope, case options
when Hash