Skip to content

Commit

Permalink
Reword calculations section
Browse files Browse the repository at this point in the history
  • Loading branch information
lifo committed Aug 30, 2010
1 parent d0720ad commit 9cd708b
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions railties/guides/source/active_record_querying.textile
Expand Up @@ -856,22 +856,24 @@ h3. Calculations


This section uses count as an example method in this preamble, but the options described apply to all sub-sections. This section uses count as an example method in this preamble, but the options described apply to all sub-sections.


<tt>count</tt> takes conditions much in the same way +exists?+ does: All calculation methods work directly on a model:


<ruby> <ruby>
Client.count(:conditions => "first_name = 'Ryan'") Client.count
# SELECT count(*) AS count_all FROM clients
</ruby> </ruby>


Which will execute: Or on a relation :


<sql> <ruby>
SELECT count(*) AS count_all FROM clients WHERE (first_name = 'Ryan') Client.where(:first_name => 'Ryan').count
</sql> # SELECT count(*) AS count_all FROM clients WHERE (first_name = 'Ryan')
</ruby>


You can also use the +includes+ or +joins+ methods for this to do something a little more complex: You can also use various finder methods on a relation for performing complex calculations:


<ruby> <ruby>
Client.where("clients.first_name = 'Ryan' AND orders.status = 'received'").includes("orders").count Client.includes("orders").where(:first_name => 'Ryan', :orders => {:status => 'received'}).count
</ruby> </ruby>


Which will execute: Which will execute:
Expand All @@ -882,8 +884,6 @@ SELECT count(DISTINCT clients.id) AS count_all FROM clients
(clients.first_name = 'Ryan' AND orders.status = 'received') (clients.first_name = 'Ryan' AND orders.status = 'received')
</sql> </sql>


This code specifies +clients.first_name+ just in case one of the join tables has a field also called +first_name+ and it uses +orders.status+ because that's the name of our join table.

h4. Count h4. Count


If you want to see how many records are in your model's table you could call +Client.count+ and that will return the number. If you want to be more specific and find all the clients with their age present in the database you can use +Client.count(:age)+. If you want to see how many records are in your model's table you could call +Client.count+ and that will return the number. If you want to be more specific and find all the clients with their age present in the database you can use +Client.count(:age)+.
Expand Down

0 comments on commit 9cd708b

Please sign in to comment.