Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

added a class rdoc and documented count_records in has_many_associati…

  • Loading branch information...
1 parent 48f56bf commit 2ee60b0f70febc8c28a90e8361d9e9c2b86d4833 @fxn fxn committed
14 activerecord/lib/active_record/associations/has_many_association.rb
@@ -1,5 +1,9 @@
module ActiveRecord
module Associations
+ # This is the proxy that handles a has many association.
+ #
+ # If the association has a <tt>:through</tt> option further specialization
+ # is provided by its child HasManyThroughAssociation.
class HasManyAssociation < AssociationCollection #:nodoc:
# Count the number of associated records. All arguments are optional.
def count(*args)
@@ -27,6 +31,16 @@ def owner_quoted_id
+ # Returns the number of records in this collection.
+ #
+ # If the association has a counter cache it gets that value. Otherwise
+ # a count via SQL is performed, bounded to <tt>:limit</tt> if there's one.
+ # That does not depend on whether the collection has already been loaded
+ # or not. The +size+ method is the one that takes the loaded flag into
+ # account and delegates to +count_records+ if needed.
+ #
+ # If the collection is empty the target is set to an empty array and
+ # the loaded flag is set to true as well.
def count_records
count = if has_cached_counter?
@owner.send(:read_attribute, cached_counter_attribute_name)

0 comments on commit 2ee60b0

Please sign in to comment.
Something went wrong with that request. Please try again.