aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/validations/uniqueness.rb
diff options
context:
space:
mode:
authorGodfrey Chan <godfreykfc@gmail.com>2014-02-27 14:56:10 -0800
committerGodfrey Chan <godfreykfc@gmail.com>2014-02-27 14:56:10 -0800
commit544c78a4e964b1971c2409f4dc805f2d4161990e (patch)
treed2f95b5c979111c68c738a102d0ff610a4f7ea32 /activerecord/lib/active_record/validations/uniqueness.rb
parent14e697cf2a1f2a4d223463839f6748fca4658bcf (diff)
parent6e53d92498ada27cea6c7bae85708fcf5579223c (diff)
downloadrails-544c78a4e964b1971c2409f4dc805f2d4161990e.tar.gz
rails-544c78a4e964b1971c2409f4dc805f2d4161990e.tar.bz2
rails-544c78a4e964b1971c2409f4dc805f2d4161990e.zip
Merge pull request #14203 from Alwahsh/aabouelhamayed
Fix a bug affecting validations of enum attributes
Diffstat (limited to 'activerecord/lib/active_record/validations/uniqueness.rb')
-rw-r--r--activerecord/lib/active_record/validations/uniqueness.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/validations/uniqueness.rb b/activerecord/lib/active_record/validations/uniqueness.rb
index 7ebe9dfec0..49b0f73219 100644
--- a/activerecord/lib/active_record/validations/uniqueness.rb
+++ b/activerecord/lib/active_record/validations/uniqueness.rb
@@ -13,6 +13,7 @@ module ActiveRecord
def validate_each(record, attribute, value)
finder_class = find_finder_class_for(record)
table = finder_class.arel_table
+ value = map_enum_attribute(finder_class,attribute,value)
value = deserialize_attribute(record, attribute, value)
relation = build_relation(finder_class, table, attribute, value)
@@ -91,6 +92,12 @@ module ActiveRecord
value = coder.dump value if value && coder
value
end
+
+ def map_enum_attribute(klass,attribute,value)
+ mapping = klass.enum_mapping_for(attribute.to_s)
+ value = mapping[value] if value && mapping
+ value
+ end
end
module ClassMethods