aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2016-03-08 13:10:45 -0700
committerSean Griffin <sean@seantheprogrammer.com>2016-03-08 13:10:45 -0700
commitda1fecce32db969a00fa7be600ace828fca89539 (patch)
tree3e9fbcefc15b381d7990c5504b2bf5936e3e50b4 /activerecord/test/cases
parent8c2a697380e9661563fb545bc860c4f1abe94bcd (diff)
parent0784dccc4fb8322ad88717efb31d37553542532b (diff)
downloadrails-da1fecce32db969a00fa7be600ace828fca89539.tar.gz
rails-da1fecce32db969a00fa7be600ace828fca89539.tar.bz2
rails-da1fecce32db969a00fa7be600ace828fca89539.zip
Merge pull request #23666 from meinac/fix_abstract_default_scope_bug
Execute default_scope defined by abstract class within the scope of subclass
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/scoping/default_scoping_test.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/test/cases/scoping/default_scoping_test.rb b/activerecord/test/cases/scoping/default_scoping_test.rb
index c918cbdef5..dcd09b6973 100644
--- a/activerecord/test/cases/scoping/default_scoping_test.rb
+++ b/activerecord/test/cases/scoping/default_scoping_test.rb
@@ -4,6 +4,7 @@ require 'models/comment'
require 'models/developer'
require 'models/computer'
require 'models/vehicle'
+require 'models/cat'
class DefaultScopingTest < ActiveRecord::TestCase
fixtures :developers, :posts, :comments
@@ -485,4 +486,15 @@ class DefaultScopingTest < ActiveRecord::TestCase
assert_equal 1, SubConditionalStiPost.all.to_a.size
assert_equal 2, SubConditionalStiPost.unscope(where: :title).to_a.size
end
+
+ def test_with_abstract_class_scope_should_be_executed_in_correct_context
+ vegetarian_pattern, gender_pattern = if current_adapter?(:Mysql2Adapter)
+ [/`lions`.`is_vegetarian`/, /`lions`.`gender`/]
+ else
+ [/"lions"."is_vegetarian"/, /"lions"."gender"/]
+ end
+
+ assert_match vegetarian_pattern, Lion.all.to_sql
+ assert_match gender_pattern, Lion.female.to_sql
+ end
end