提交 b8418526 编写于 作者: R Ryuta Kamizono

Merge pull request #37360 from kamipo/deprecate_leaking_scope

Deprecate leaking scope in callback block for association relation
上级 65dba0a1
......@@ -16,15 +16,18 @@ def ==(other)
end
def build(*args, &block)
block = _deprecated_scope_block("new", &block)
scoping { @association.build(*args, &block) }
end
alias new build
def create(*args, &block)
block = _deprecated_scope_block("create", &block)
scoping { @association.create(*args, &block) }
end
def create!(*args, &block)
block = _deprecated_scope_block("create!", &block)
scoping { @association.create!(*args, &block) }
end
......
......@@ -2499,14 +2499,34 @@ def test_association_with_rewhere_doesnt_set_inverse_instance_key
test "first_or_initialize adds the record to the association" do
firm = Firm.create! name: "omg"
client = firm.clients_of_firm.first_or_initialize
client = firm.clients_of_firm.where(name: "lol").first_or_initialize do
assert_deprecated do
assert_equal 0, Client.count
end
end
assert_equal [client], firm.clients_of_firm
end
test "first_or_create adds the record to the association" do
firm = Firm.create! name: "omg"
firm.clients_of_firm.load_target
client = firm.clients_of_firm.first_or_create name: "lol"
client = firm.clients_of_firm.where(name: "lol").first_or_create do
assert_deprecated do
assert_equal 0, Client.count
end
end
assert_equal [client], firm.clients_of_firm
assert_equal [client], firm.reload.clients_of_firm
end
test "first_or_create! adds the record to the association" do
firm = Firm.create! name: "omg"
firm.clients_of_firm.load_target
client = firm.clients_of_firm.where(name: "lol").first_or_create! do
assert_deprecated do
assert_equal 0, Client.count
end
end
assert_equal [client], firm.clients_of_firm
assert_equal [client], firm.reload.clients_of_firm
end
......
......@@ -9,7 +9,7 @@ class Bulb < ActiveRecord::Base
after_initialize :record_scope_after_initialize
def record_scope_after_initialize
@scope_after_initialize = self.class.all
@scope_after_initialize = self.class.unscoped.all
end
after_initialize :record_attributes_after_initialize
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册