提交 474d4253 编写于 作者: P Pratik Naik

Ensure AssociationCollection#size considers all unsaved record. [#305 state:resolved] [sds]

Signed-off-by: NPratik Naik <pratiknaik@gmail.com>
上级 7378e237
......@@ -187,7 +187,7 @@ def size
if @owner.new_record? || (loaded? && !@reflection.options[:uniq])
@target.size
elsif !loaded? && !@reflection.options[:uniq] && @target.is_a?(Array)
unsaved_records = Array(@target.detect { |r| r.new_record? })
unsaved_records = @target.select { |r| r.new_record? }
unsaved_records.size + count_records
else
count_records
......
......@@ -384,6 +384,13 @@ def test_build
assert_equal 2, company.clients_of_firm(true).size
end
def test_collection_size_after_building
company = companies(:first_firm) # company already has one client
company.clients_of_firm.build("name" => "Another Client")
company.clients_of_firm.build("name" => "Yet Another Client")
assert_equal 3, company.clients_of_firm.size
end
def test_build_many
company = companies(:first_firm)
new_clients = assert_no_queries { company.clients_of_firm.build([{"name" => "Another Client"}, {"name" => "Another Client II"}]) }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册