aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2012-10-14 14:13:14 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2012-10-14 14:13:14 -0700
commita550a6839a256a9504b2dfc0eba949e36e39c061 (patch)
treee747353000c07288ff5f269477482651f5ae3942 /activerecord
parentae61c03891e2190620fb15b8f4c833ebf6993dc1 (diff)
parent08927cf1f2ebf7425418f4ee97a3dfb80abe978e (diff)
downloadrails-a550a6839a256a9504b2dfc0eba949e36e39c061.tar.gz
rails-a550a6839a256a9504b2dfc0eba949e36e39c061.tar.bz2
rails-a550a6839a256a9504b2dfc0eba949e36e39c061.zip
Merge pull request #7947 from acapilleri/uniqueness_validate
refactoring of uniqueness validate_each
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/validations/uniqueness.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/validations/uniqueness.rb b/activerecord/lib/active_record/validations/uniqueness.rb
index 5dece1cb36..5fa6a0b892 100644
--- a/activerecord/lib/active_record/validations/uniqueness.rb
+++ b/activerecord/lib/active_record/validations/uniqueness.rb
@@ -26,11 +26,12 @@ module ActiveRecord
relation = relation.and(table[finder_class.primary_key.to_sym].not_eq(record.send(:id))) if record.persisted?
Array(options[:scope]).each do |scope_item|
- scope_value = record.read_attribute(scope_item)
reflection = record.class.reflect_on_association(scope_item)
if reflection
scope_value = record.send(reflection.foreign_key)
scope_item = reflection.foreign_key
+ else
+ scope_value = record.read_attribute(scope_item)
end
relation = relation.and(table[scope_item].eq(scope_value))
end