aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-11-02 22:09:10 -0200
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-11-02 22:11:20 -0200
commit4d7080f80c1ec4792730943b33b6eac2a1562b2a (patch)
tree289bc98d545cbc9771ed70a4d8292abaae2ba03c
parent09447929a06a4650d82ed51af56e3365ec7583a6 (diff)
downloadrails-4d7080f80c1ec4792730943b33b6eac2a1562b2a.tar.gz
rails-4d7080f80c1ec4792730943b33b6eac2a1562b2a.tar.bz2
rails-4d7080f80c1ec4792730943b33b6eac2a1562b2a.zip
unscope now works on default_scope after 94924dc32baf78f13e289172534c2e71c9c8cade
-rw-r--r--activerecord/CHANGELOG.md13
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb3
-rw-r--r--activerecord/test/cases/scoping/default_scoping_test.rb2
3 files changed, 9 insertions, 9 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index d12534aaf2..e93c6aad5f 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,12 +1,15 @@
+* `.unscope` now removes conditions specified in `default_scope`.
+
+ *Jon Leighton*
+
* Extend ActiveRecord::Base#cache_key to take an optional list of timestamp attributes of which the highest will be used.
- Example:
-
- # last_reviewed_at will be used, if that's more recent than updated_at, or vice versa
- Person.find(5).cache_key(:updated_at, :last_reviewed_at)
+ Example:
- *DHH*
+ # last_reviewed_at will be used, if that's more recent than updated_at, or vice versa
+ Person.find(5).cache_key(:updated_at, :last_reviewed_at)
+ *DHH*
* Added ActiveRecord::Base#enum for declaring enum attributes where the values map to integers in the database, but can be queried by name.
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index bffd8b5d0f..14d8671161 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -341,9 +341,6 @@ module ActiveRecord
# User.where(name: "John", active: true).unscope(where: :name)
# == User.where(active: true)
#
- # This method is applied before the default_scope is applied. So the conditions
- # specified in default_scope will not be removed.
- #
# Note that this method is more generalized than ActiveRecord::SpawnMethods#except
# because #except will only affect a particular relation's values. It won't wipe
# the order, grouping, etc. when that relation is merged. For example:
diff --git a/activerecord/test/cases/scoping/default_scoping_test.rb b/activerecord/test/cases/scoping/default_scoping_test.rb
index 76f395ba83..4fd9d6f52a 100644
--- a/activerecord/test/cases/scoping/default_scoping_test.rb
+++ b/activerecord/test/cases/scoping/default_scoping_test.rb
@@ -103,7 +103,7 @@ class DefaultScopingTest < ActiveRecord::TestCase
def test_unscope_overrides_default_scope
expected = Developer.all.collect { |dev| [dev.name, dev.id] }
- received = Developer.order('name ASC, id DESC').unscope(:order).collect { |dev| [dev.name, dev.id] }
+ received = DeveloperCalledJamis.unscope(:where).collect { |dev| [dev.name, dev.id] }
assert_equal expected, received
end