diff options
author | TAKAHASHI Kazuaki <dia@dmap.tk> | 2015-03-27 20:10:57 +0900 |
---|---|---|
committer | TAKAHASHI Kazuaki <dia@dmap.tk> | 2015-03-27 20:10:57 +0900 |
commit | c6e05d68400361921c4ba6f0888979e92a4a801b (patch) | |
tree | 64224106fb4b7ae9928b147e993a7e127d31a276 /activerecord/test | |
parent | 3f28378cbde3528225d717c1bb1dcbdb9d093b34 (diff) | |
download | rails-c6e05d68400361921c4ba6f0888979e92a4a801b.tar.gz rails-c6e05d68400361921c4ba6f0888979e92a4a801b.tar.bz2 rails-c6e05d68400361921c4ba6f0888979e92a4a801b.zip |
Fix unscope for less than
Code such as the following will be corrected.
Developer.where(id: -Float::INFINITY...2).unscope(where: :id)
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/scoping/default_scoping_test.rb | 12 |
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 4137b20c4a..0dbc60940e 100644 --- a/activerecord/test/cases/scoping/default_scoping_test.rb +++ b/activerecord/test/cases/scoping/default_scoping_test.rb @@ -153,6 +153,18 @@ class DefaultScopingTest < ActiveRecord::TestCase assert_equal expected_7, received_7 end + def test_unscope_comparison_where_clauses + # unscoped for WHERE (`developers`.`id` <= 2) + expected = Developer.order('salary DESC').collect(&:name) + received = DeveloperOrderedBySalary.where(id: -Float::INFINITY..2).unscope(where: :id).collect { |dev| dev.name } + assert_equal expected, received + + # unscoped for WHERE (`developers`.`id` < 2) + expected = Developer.order('salary DESC').collect(&:name) + received = DeveloperOrderedBySalary.where(id: -Float::INFINITY...2).unscope(where: :id).collect { |dev| dev.name } + assert_equal expected, received + end + def test_unscope_multiple_where_clauses expected = Developer.order('salary DESC').collect(&:name) received = DeveloperOrderedBySalary.where(name: 'Jamis').where(id: 1).unscope(where: [:name, :id]).collect(&:name) |