aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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