提交 e8d80f73 编写于 作者: J Jon Leighton

Merge pull request #8912 from senny/8879_association_empty_method

`CollectionAssociation#empty?` respects newly builded records
## Rails 4.0.0 (unreleased) ## ## Rails 4.0.0 (unreleased) ##
* Collection associations `#empty?` always respects builded records.
Fix #8879.
Example:
widget = Widget.new
widget.things.build
widget.things.empty? # => false
*Yves Senn*
* Remove support for parsing YAML parameters from request. * Remove support for parsing YAML parameters from request.
*Aaron Patterson* *Aaron Patterson*
......
...@@ -273,7 +273,7 @@ def empty? ...@@ -273,7 +273,7 @@ def empty?
if loaded? || options[:counter_sql] if loaded? || options[:counter_sql]
size.zero? size.zero?
else else
!scope.exists? @target.blank? && !scope.exists?
end end
end end
......
...@@ -625,6 +625,13 @@ def test_collection_size_after_building ...@@ -625,6 +625,13 @@ def test_collection_size_after_building
assert_equal 3, company.clients_of_firm.size assert_equal 3, company.clients_of_firm.size
end end
def test_collection_not_empty_after_building
company = companies(:first_firm)
assert_predicate company.contracts, :empty?
company.contracts.build
assert_not_predicate company.contracts, :empty?
end
def test_collection_size_twice_for_regressions def test_collection_size_twice_for_regressions
post = posts(:thinking) post = posts(:thinking)
assert_equal 0, post.readers.size assert_equal 0, post.readers.size
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册