aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/validations
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2016-02-21 23:59:52 +0900
committerRyuta Kamizono <kamipo@gmail.com>2016-02-22 00:00:57 +0900
commit8a4c3286f7d18628e26a8f3609c00b8a42e695b7 (patch)
tree615b31c9f5c4333a0b518b11b018367f059fd826 /activerecord/lib/active_record/validations
parent22c318d6cfe39933b2f5adb383cb6f0153f505d3 (diff)
downloadrails-8a4c3286f7d18628e26a8f3609c00b8a42e695b7.tar.gz
rails-8a4c3286f7d18628e26a8f3609c00b8a42e695b7.tar.bz2
rails-8a4c3286f7d18628e26a8f3609c00b8a42e695b7.zip
Reduce `attribute.to_s`
Diffstat (limited to 'activerecord/lib/active_record/validations')
-rw-r--r--activerecord/lib/active_record/validations/uniqueness.rb11
1 files changed, 5 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/validations/uniqueness.rb b/activerecord/lib/active_record/validations/uniqueness.rb
index f0aa4521b5..88c272657f 100644
--- a/activerecord/lib/active_record/validations/uniqueness.rb
+++ b/activerecord/lib/active_record/validations/uniqueness.rb
@@ -57,14 +57,13 @@ module ActiveRecord
value = value.attributes[reflection.klass.primary_key] unless value.nil?
end
- attribute_name = attribute.to_s
-
# the attribute may be an aliased attribute
- if klass.attribute_aliases[attribute_name]
- attribute = klass.attribute_aliases[attribute_name]
- attribute_name = attribute.to_s
+ if klass.attribute_alias?(attribute)
+ attribute = klass.attribute_alias(attribute)
end
+ attribute_name = attribute.to_s
+
column = klass.columns_hash[attribute_name]
cast_type = klass.type_for_attribute(attribute_name)
value = cast_type.serialize(value)
@@ -82,7 +81,7 @@ module ActiveRecord
if value.nil?
klass.unscoped.where(comparison)
else
- bind = Relation::QueryAttribute.new(attribute.to_s, value, Type::Value.new)
+ bind = Relation::QueryAttribute.new(attribute_name, value, Type::Value.new)
klass.unscoped.where(comparison, bind)
end
rescue RangeError