Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

backport 68677ff

  • Loading branch information...
commit 8dbf337e0a7e4db521aa2f5f992609fae98c329e 1 parent ddba97f
Evan Petrie authored
View
7 activerecord/lib/active_record/base.rb
@@ -450,12 +450,12 @@ def arel_engine
private
def relation #:nodoc:
- @relation ||= Relation.new(self, arel_table)
+ relation = Relation.new(self, arel_table)
if finder_needs_type_condition?
- @relation.where(type_condition).create_with(inheritance_column.to_sym => sti_name)
+ relation.where(type_condition).create_with(inheritance_column.to_sym => sti_name)
else
- @relation
+ relation
end
end
end
@@ -489,7 +489,6 @@ def initialize(attributes = nil, options = {})
@marked_for_destruction = false
@previously_changed = {}
@changed_attributes = {}
- @relation = nil
ensure_proper_type
View
4 activerecord/lib/active_record/scoping/named.rb
@@ -34,7 +34,7 @@ def scoped(options = nil)
if current_scope
current_scope.clone
else
- scope = relation.clone
+ scope = relation
scope.default_scoped = true
scope
end
@@ -48,7 +48,7 @@ def scope_attributes # :nodoc:
if current_scope
current_scope.scope_for_create
else
- scope = relation.clone
+ scope = relation
scope.default_scoped = true
scope.scope_for_create
end
View
4 activerecord/test/cases/relation_scoping_test.rb
@@ -548,4 +548,8 @@ def test_default_scope_is_threadsafe
end
threads.each(&:join)
end
+
+ def test_default_scope_unscoped_is_not_cached
+ assert_not_equal DeveloperCalledDavid.unscoped.object_id, DeveloperCalledDavid.unscoped.object_id
+ end
end
View
4 activerecord/test/cases/relations_test.rb
@@ -1093,6 +1093,10 @@ def test_unscoped_block_style
assert_equal 'honda', FastCar.unscoped { FastCar.order_using_old_style.limit(1).first.name}
end
+ def test_unscoped_relation_clones
+ assert_not_equal CoolCar.unscoped.object_id, CoolCar.unscoped.object_id
+ end
+
def test_intersection_with_array
relation = Author.where(:name => "David")
rails_author = relation.first
Please sign in to comment.
Something went wrong with that request. Please try again.