From 0856f7c744e631b6efafbb14d01e60bbfaa593f5 Mon Sep 17 00:00:00 2001 From: Ryuta Kamizono Date: Sat, 6 Apr 2019 12:00:17 +0900 Subject: There is no need to check `null_relation?` in `empty_scope?` `values[:extending]` includes `NullRelation` if `null_relation?`. --- activerecord/lib/active_record/relation.rb | 2 +- activerecord/test/cases/relation_test.rb | 3 +++ activerecord/test/models/post.rb | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index c1cdad9c87..cd62b0b881 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -689,7 +689,7 @@ module ActiveRecord end def empty_scope? # :nodoc: - !null_relation? && @values == klass.unscoped.values + @values == klass.unscoped.values end def has_limit_or_offset? # :nodoc: diff --git a/activerecord/test/cases/relation_test.rb b/activerecord/test/cases/relation_test.rb index 00a7b3841f..90b208092f 100644 --- a/activerecord/test/cases/relation_test.rb +++ b/activerecord/test/cases/relation_test.rb @@ -101,6 +101,9 @@ module ActiveRecord relation.merge!(relation) assert_predicate relation, :empty_scope? + + assert_not_predicate NullPost.all, :empty_scope? + assert_not_predicate FirstPost.all, :empty_scope? end def test_bad_constants_raise_errors diff --git a/activerecord/test/models/post.rb b/activerecord/test/models/post.rb index 61e5f14100..395b534c63 100644 --- a/activerecord/test/models/post.rb +++ b/activerecord/test/models/post.rb @@ -203,6 +203,10 @@ end class SubAbstractStiPost < AbstractStiPost; end +class NullPost < Post + default_scope { none } +end + class FirstPost < ActiveRecord::Base self.inheritance_column = :disabled self.table_name = "posts" -- cgit v1.2.3