aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2013-04-28 22:59:18 -0300
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2013-04-28 23:00:35 -0300
commit85a56ff01de71d4978e809d86920513a95ddf3a0 (patch)
tree806edb7effa8edd76c4c6cdb03155e2f0f342acc /activerecord/test
parent226de24fa2c9c402495287f5d8153e132759c8c8 (diff)
downloadrails-85a56ff01de71d4978e809d86920513a95ddf3a0.tar.gz
rails-85a56ff01de71d4978e809d86920513a95ddf3a0.tar.bz2
rails-85a56ff01de71d4978e809d86920513a95ddf3a0.zip
Delegate #unscope query method
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/scoping/default_scoping_test.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/activerecord/test/cases/scoping/default_scoping_test.rb b/activerecord/test/cases/scoping/default_scoping_test.rb
index 5a65ad5dfa..0f69443839 100644
--- a/activerecord/test/cases/scoping/default_scoping_test.rb
+++ b/activerecord/test/cases/scoping/default_scoping_test.rb
@@ -198,6 +198,16 @@ class DefaultScopingTest < ActiveRecord::TestCase
assert_equal expected, received
end
+ def test_unscope_and_scope
+ developer_klass = Class.new(Developer) do
+ scope :by_name, -> name { unscope(where: :name).where(name: name) }
+ end
+
+ expected = developer_klass.where(name: 'Jamis').collect { |dev| [dev.name, dev.id] }
+ received = developer_klass.where(name: 'David').by_name('Jamis').collect { |dev| [dev.name, dev.id] }
+ assert_equal expected, received
+ end
+
def test_unscope_errors_with_invalid_value
assert_raises(ArgumentError) do
Developer.includes(:projects).where(name: "Jamis").unscope(:stupidly_incorrect_value)