From 2ee60b0f70febc8c28a90e8361d9e9c2b86d4833 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Tue, 19 Aug 2008 02:51:37 +0200 Subject: added a class rdoc and documented count_records in has_many_association.rb --- .../lib/active_record/associations/has_many_association.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/activerecord/lib/active_record/associations/has_many_association.rb b/activerecord/lib/active_record/associations/has_many_association.rb index e6fa15c173..f06e69aba3 100644 --- a/activerecord/lib/active_record/associations/has_many_association.rb +++ b/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 :through 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 @@ module ActiveRecord end end + # 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 :limit 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) -- cgit v1.2.3