aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-04-02 08:29:54 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-04-02 08:29:54 +0000
commit06a6133fff7ddac177dde63c3303e1209c9e5518 (patch)
tree76207109c3da6f6c7caba6674832d0168a3c5c92 /activerecord
parent0ca544d7b38c5f93b940c1709b361ba8d54d1194 (diff)
downloadrails-06a6133fff7ddac177dde63c3303e1209c9e5518.tar.gz
rails-06a6133fff7ddac177dde63c3303e1209c9e5518.tar.bz2
rails-06a6133fff7ddac177dde63c3303e1209c9e5518.zip
Added a join parameter as the third argument to Base.find_first and as the second to Base.count #426, #988 [skaes@web.de]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1058 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG2
-rwxr-xr-xactiverecord/lib/active_record/base.rb6
2 files changed, 5 insertions, 3 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index 1f2a363085..1b00208043 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,6 +1,6 @@
*SVN*
-* Added a join parameter as the third argument to Base.find_first #426 [skaes@web.de]
+* Added a join parameter as the third argument to Base.find_first and as the second to Base.count #426, #988 [skaes@web.de]
* Fixed bug in Base#hash method that would treat records with the same string-based id as different [Dave Thomas]
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index bf36e9815b..d15b7e9986 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -452,8 +452,10 @@ module ActiveRecord #:nodoc:
# Returns the number of records that meets the +conditions+. Zero is returned if no records match. Example:
# Product.count "sales > 1"
- def count(conditions = nil)
- sql = "SELECT COUNT(*) FROM #{table_name} "
+ def count(conditions = nil, joins = nil)
+ tbl_var_name = joins ? table_name[0,1].downcase : ""
+ sql = "SELECT COUNT(*) FROM #{table_name} #{tbl_var_name} "
+ sql << ", #{joins} " if joins
add_conditions!(sql, conditions)
count_by_sql(sql)
end