diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-03-30 09:28:12 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2018-03-30 09:55:21 +0900 |
commit | 0bfeb481a0aa35eeca1c5230938fa61fee0faef2 (patch) | |
tree | 705aebd8bd1f5f1344ee556ed26f1dadc2073980 /activerecord/lib/active_record | |
parent | b9be64cc3e2959c974c3036a0eb5a37fc8c7d580 (diff) | |
download | rails-0bfeb481a0aa35eeca1c5230938fa61fee0faef2.tar.gz rails-0bfeb481a0aa35eeca1c5230938fa61fee0faef2.tar.bz2 rails-0bfeb481a0aa35eeca1c5230938fa61fee0faef2.zip |
Deprecate accessibility of private/protected class methods in named scope
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/relation.rb | 2 | ||||
-rw-r--r-- | activerecord/lib/active_record/relation/delegation.rb | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index 38b720ffc8..38a364ff88 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -30,6 +30,7 @@ module ActiveRecord @offsets = {} @loaded = false @predicate_builder = predicate_builder + @delegate_to_klass = false end def initialize_copy(other) @@ -453,6 +454,7 @@ module ActiveRecord end def reset + @delegate_to_klass = false @to_sql = @arel = @loaded = @should_eager_load = nil @records = [].freeze @offsets = {} diff --git a/activerecord/lib/active_record/relation/delegation.rb b/activerecord/lib/active_record/relation/delegation.rb index 27450ab8b3..488f71cdde 100644 --- a/activerecord/lib/active_record/relation/delegation.rb +++ b/activerecord/lib/active_record/relation/delegation.rb @@ -82,8 +82,10 @@ module ActiveRecord if @klass.respond_to?(method) self.class.delegate_to_scoped_klass(method) scoping { @klass.public_send(method, *args, &block) } - elsif defined?(@delegate_to_klass) && - @delegate_to_klass && @klass.respond_to?(method, true) + elsif @delegate_to_klass && @klass.respond_to?(method, true) + ActiveSupport::Deprecation.warn \ + "Delegating missing #{method} method to #{@klass}. " \ + "Accessibility of private/protected class methods in :scope is deprecated and will be removed in Rails 6.0." @klass.send(method, *args, &block) elsif arel.respond_to?(method) ActiveSupport::Deprecation.warn \ |