From 8a0fda63aa6ab9b5c30cb23a1c3f5a3399d703f8 Mon Sep 17 00:00:00 2001 From: Sergey Alekseev Date: Sat, 26 Nov 2016 15:17:11 +0300 Subject: fix the uniqueness validation scope with a polymorphic association https://gist.github.com/sergey-alekseev/946657ebdb5e58d1bee115714056ec96 --- activerecord/lib/active_record/validations/uniqueness.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'activerecord/lib/active_record/validations/uniqueness.rb') diff --git a/activerecord/lib/active_record/validations/uniqueness.rb b/activerecord/lib/active_record/validations/uniqueness.rb index bed93bfc26..512fdadacc 100644 --- a/activerecord/lib/active_record/validations/uniqueness.rb +++ b/activerecord/lib/active_record/validations/uniqueness.rb @@ -85,11 +85,10 @@ module ActiveRecord def scope_relation(record, relation) Array(options[:scope]).each do |scope_item| - if reflection = record.class._reflect_on_association(scope_item) - scope_value = record.send(reflection.foreign_key) - scope_item = reflection.foreign_key + scope_value = if record.class._reflect_on_association(scope_item) + record.association(scope_item).reader else - scope_value = record._read_attribute(scope_item) + record._read_attribute(scope_item) end relation = relation.where(scope_item => scope_value) end -- cgit v1.2.3