Merge pull request #36985 from anmolarora/fix-take-memoization
Clear ActiveRecord object memoized by take
This commit is contained in:
commit
ebd7f2a202
@ -641,6 +641,7 @@ def reset
|
|||||||
@to_sql = @arel = @loaded = @should_eager_load = nil
|
@to_sql = @arel = @loaded = @should_eager_load = nil
|
||||||
@records = [].freeze
|
@records = [].freeze
|
||||||
@offsets = {}
|
@offsets = {}
|
||||||
|
@take = nil
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -390,7 +390,6 @@ def test_where_with_relation_on_has_one_association
|
|||||||
assert_equal author_addresses(:david_address), author_address
|
assert_equal author_addresses(:david_address), author_address
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def test_where_on_association_with_select_relation
|
def test_where_on_association_with_select_relation
|
||||||
essay = Essay.where(author: Author.where(name: "David").select(:name)).take
|
essay = Essay.where(author: Author.where(name: "David").select(:name)).take
|
||||||
assert_equal essays(:david_modest_proposal), essay
|
assert_equal essays(:david_modest_proposal), essay
|
||||||
|
@ -2050,6 +2050,32 @@ def test_relation_with_private_kernel_method
|
|||||||
assert_equal [accounts(:signals37)], sub_accounts.available
|
assert_equal [accounts(:signals37)], sub_accounts.available
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_where_with_take_memoization
|
||||||
|
5.times do |idx|
|
||||||
|
Post.create!(title: idx.to_s, body: idx.to_s)
|
||||||
|
end
|
||||||
|
|
||||||
|
posts = Post.all
|
||||||
|
first_post = posts.take
|
||||||
|
third_post = posts.where(title: "3").take
|
||||||
|
|
||||||
|
assert_equal "3", third_post.title
|
||||||
|
assert_not_equal first_post.object_id, third_post.object_id
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_find_by_with_take_memoization
|
||||||
|
5.times do |idx|
|
||||||
|
Post.create!(title: idx.to_s, body: idx.to_s)
|
||||||
|
end
|
||||||
|
|
||||||
|
posts = Post.all
|
||||||
|
first_post = posts.take
|
||||||
|
third_post = posts.find_by(title: "3")
|
||||||
|
|
||||||
|
assert_equal "3", third_post.title
|
||||||
|
assert_not_equal first_post.object_id, third_post.object_id
|
||||||
|
end
|
||||||
|
|
||||||
test "#skip_query_cache!" do
|
test "#skip_query_cache!" do
|
||||||
Post.cache do
|
Post.cache do
|
||||||
assert_queries(1) do
|
assert_queries(1) do
|
||||||
|
Loading…
Reference in New Issue
Block a user