aboutsummaryrefslogtreecommitdiffstats
path: root/railties/doc/guides/source
diff options
context:
space:
mode:
authorCassioMarques <cassiommc@gmail.com>2008-11-10 21:02:40 -0200
committerCassioMarques <cassiommc@gmail.com>2008-11-10 21:02:40 -0200
commit31dcce8c1c41da49bfc0d60bd6ea77e4cd7e7d17 (patch)
treea9569f3140a7a65c6de8c70c713a36554820a0b5 /railties/doc/guides/source
parent6f944c06c86fcf30f257202fa10f0ccad6014ef5 (diff)
downloadrails-31dcce8c1c41da49bfc0d60bd6ea77e4cd7e7d17.tar.gz
rails-31dcce8c1c41da49bfc0d60bd6ea77e4cd7e7d17.tar.bz2
rails-31dcce8c1c41da49bfc0d60bd6ea77e4cd7e7d17.zip
Added documentation for validates_uniqueness_of
Diffstat (limited to 'railties/doc/guides/source')
-rw-r--r--railties/doc/guides/source/activerecord_validations_callbacks.txt33
1 files changed, 32 insertions, 1 deletions
diff --git a/railties/doc/guides/source/activerecord_validations_callbacks.txt b/railties/doc/guides/source/activerecord_validations_callbacks.txt
index 04248d592f..bea0cf425b 100644
--- a/railties/doc/guides/source/activerecord_validations_callbacks.txt
+++ b/railties/doc/guides/source/activerecord_validations_callbacks.txt
@@ -262,7 +262,38 @@ NOTE: If you want to validate the presence of a boolean field (where the real va
The default error message for +validates_presence_of+ is "_can't be empty_".
-=== The validates_uniqueness_of+ helper
+=== The +validates_uniqueness_of+ helper
+
+This helper validates that the attribute's value is unique right before the object gets saved. It does not create a uniqueness constraint directly into your database, so it may happen that two different database connections create two records with the same value for a column that you wish were unique. To avoid that, you must create an unique index in your database.
+
+[source, ruby]
+------------------------------------------------------------------
+class Account < ActiveRecord::Base
+ validates_uniqueness_of :email
+end
+------------------------------------------------------------------
+
+The validation happens by performing a SQL query into the model's table, searching for a record where the attribute that must be validated is equal to the value in the object being validated.
+
+There is a +:scope+ option that you can use to specify other attributes that must be used to define uniqueness:
+
+[source, ruby]
+------------------------------------------------------------------
+class Holiday < ActiveRecord::Base
+ validates_uniqueness_of :name, :scope => :year, :message => "Should happen once per year"
+end
+------------------------------------------------------------------
+
+There is also a +:case_sensitive+ option that you can use to define if the uniqueness contraint will be case sensitive or not. This option defaults to true.
+
+[source, ruby]
+------------------------------------------------------------------
+class Person < ActiveRecord::Base
+ validates_uniqueness_of :name, :case_sensitive => false
+end
+------------------------------------------------------------------
+
+The default error message for +validates_uniqueness_of+ is "_has already been taken_".
== Common validation options