size()
Instance Public methods
Returns the size of the collection. If the collection hasn't been
loaded, it executes a SELECT COUNT(*)
query. Else it calls
collection.size
.
If the collection has been already loaded size
and
length
are equivalent. If not and you are going to need the
records anyway length
will take one less query. Otherwise
size
is more efficient.
class Person < ActiveRecord::Base has_many :pets end person.pets.size # => 3 # executes something like SELECT COUNT(*) FROM "pets" WHERE "pets"."person_id" = 1 person.pets # This will execute a SELECT * FROM query # => [ # #<Pet id: 1, name: "Fancy-Fancy", person_id: 1>, # #<Pet id: 2, name: "Spook", person_id: 1>, # #<Pet id: 3, name: "Choo-Choo", person_id: 1> # ] person.pets.size # => 3 # Because the collection is already loaded, this will behave like # collection.size and no SQL count query is executed.
Please login to continue.