Permalink
Browse files

Merge pull request #8912 from senny/8879_association_empty_method

`CollectionAssociation#empty?` respects newly builded records
  • Loading branch information...
2 parents 9da9763 + ec07735 commit e8d80f73996bc19b2fab46c7519c384ce96f1928 @jonleighton jonleighton committed Jan 18, 2013
@@ -1,5 +1,16 @@
## 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.
*Aaron Patterson*
@@ -273,7 +273,7 @@ def empty?
if loaded? || options[:counter_sql]
size.zero?
else
- !scope.exists?
+ @target.blank? && !scope.exists?
end
end
@@ -625,6 +625,13 @@ def test_collection_size_after_building
assert_equal 3, company.clients_of_firm.size
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
post = posts(:thinking)
assert_equal 0, post.readers.size

0 comments on commit e8d80f7

Please sign in to comment.