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.