aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/CHANGELOG2
-rwxr-xr-xactiverecord/lib/active_record/base.rb15
2 files changed, 14 insertions, 3 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index 4f53aa2c06..920b70046b 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Document API for exists?'s parameter and provide examples of usage. Closes #7913 [fearoffish]
+
* Document API for create's attributes parameter and provide examples. Closes #7915 [fearoffish]
* Documentation for find incorrectly omits the :conditions option from various examples. Closes #7923 [mattwestcott]
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index 5330899ece..4b1693272f 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -461,9 +461,18 @@ module ActiveRecord #:nodoc:
connection.select_all(sanitize_sql(sql), "#{name} Load").collect! { |record| instantiate(record) }
end
- # Returns true if the given +id+ represents the primary key of a record in the database, false otherwise.
- # You can also pass a set of SQL conditions.
- # Example:
+ # Checks whether a record exists in the database that matches conditions given. These conditions
+ # can either be a single integer representing a primary key id to be found, or a condition to be
+ # matched like using ActiveRecord#find.
+ #
+ # The +id_or_conditions+ parameter can be an Integer or a String if you want to search the primary key
+ # column of the table for a matching id, or if you're looking to match against a condition you can use
+ # an Array or a Hash.
+ #
+ # Possible gotcha: You can't pass in a condition as a string e.g. "name = 'Jamie'", this would be
+ # sanitized and then queried against the primary key column as "id = 'name = \'Jamie"
+ #
+ # ==== Examples
# Person.exists?(5)
# Person.exists?('5')
# Person.exists?(:name => "David")