diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2010-08-30 23:44:51 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2010-08-30 23:45:03 +0100 |
commit | 9cd708b2cf39219bff3ebcda1e4428403a88a02d (patch) | |
tree | e6b3cd8ea31396954b58c04ea69f41491ca95365 | |
parent | d0720ad5f8c49fdca103babf5f3d9df1aaae3af2 (diff) | |
download | rails-9cd708b2cf39219bff3ebcda1e4428403a88a02d.tar.gz rails-9cd708b2cf39219bff3ebcda1e4428403a88a02d.tar.bz2 rails-9cd708b2cf39219bff3ebcda1e4428403a88a02d.zip |
Reword calculations section
-rw-r--r-- | railties/guides/source/active_record_querying.textile | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/railties/guides/source/active_record_querying.textile b/railties/guides/source/active_record_querying.textile index 2451773990..b34e2ffc03 100644 --- a/railties/guides/source/active_record_querying.textile +++ b/railties/guides/source/active_record_querying.textile @@ -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. -<tt>count</tt> takes conditions much in the same way +exists?+ does: +All calculation methods work directly on a model: <ruby> -Client.count(:conditions => "first_name = 'Ryan'") +Client.count +# SELECT count(*) AS count_all FROM clients </ruby> -Which will execute: +Or on a relation : -<sql> -SELECT count(*) AS count_all FROM clients WHERE (first_name = 'Ryan') -</sql> +<ruby> +Client.where(:first_name => 'Ryan').count +# 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> -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> Which will execute: @@ -882,8 +884,6 @@ SELECT count(DISTINCT clients.id) AS count_all FROM clients (clients.first_name = 'Ryan' AND orders.status = 'received') </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 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)+. |