aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorPedro Padron <ppadron@w3p.com.br>2012-10-30 15:29:47 -0200
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-12-18 08:35:03 -0200
commitba98dad113c494ac7a3c09abf16044fce4c0ef5e (patch)
treec04f2d67a47e5ee015a2c71a96e08a9daf9aa003 /activerecord/lib/active_record
parentc3e573db54c55c4e4ac694940c6d2f5b42b6155b (diff)
downloadrails-ba98dad113c494ac7a3c09abf16044fce4c0ef5e.tar.gz
rails-ba98dad113c494ac7a3c09abf16044fce4c0ef5e.tar.bz2
rails-ba98dad113c494ac7a3c09abf16044fce4c0ef5e.zip
Added support for validates_uniqueness_of in PostgreSQL array columns. Fixes: #8075.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/validations/uniqueness.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/validations/uniqueness.rb b/activerecord/lib/active_record/validations/uniqueness.rb
index 5fa6a0b892..f27fc78717 100644
--- a/activerecord/lib/active_record/validations/uniqueness.rb
+++ b/activerecord/lib/active_record/validations/uniqueness.rb
@@ -71,7 +71,12 @@ module ActiveRecord
end
column = klass.columns_hash[attribute.to_s]
- value = column.limit ? value.to_s[0, column.limit] : value.to_s if !value.nil? && column.text?
+
+ if !value.nil? && column.text? && column.limit
+ value = value.to_s[0, column.limit]
+ else
+ value = klass.connection.type_cast(value, column)
+ end
if !options[:case_sensitive] && value && column.text?
# will use SQL LOWER function before comparison, unless it detects a case insensitive collation