diff options
author | Dan Pickett <dpickett@enlightsolutions.com> | 2012-01-06 18:59:36 -0500 |
---|---|---|
committer | Dan Pickett <dpickett@enlightsolutions.com> | 2012-01-06 18:59:36 -0500 |
commit | 5f472785fed770da77270300fb9ee5d7763ba7ac (patch) | |
tree | 1c2a4ad686df502345a58f8bfc5a728e6d7e5a0d /activerecord/lib/active_record | |
parent | 984ce0cf9acf6e5bae4e95b87d6a9545579464ef (diff) | |
download | rails-5f472785fed770da77270300fb9ee5d7763ba7ac.tar.gz rails-5f472785fed770da77270300fb9ee5d7763ba7ac.tar.bz2 rails-5f472785fed770da77270300fb9ee5d7763ba7ac.zip |
allow an association as a scope parameter
#4321
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/validations/uniqueness.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/validations/uniqueness.rb b/activerecord/lib/active_record/validations/uniqueness.rb index 55edb57206..77ddd72e59 100644 --- a/activerecord/lib/active_record/validations/uniqueness.rb +++ b/activerecord/lib/active_record/validations/uniqueness.rb @@ -25,6 +25,11 @@ module ActiveRecord Array(options[:scope]).each do |scope_item| scope_value = record.send(scope_item) + reflection = record.class.reflect_on_association(scope_item) + if reflection + scope_value = record.send(reflection.foreign_key) + scope_item = reflection.foreign_key + end relation = relation.and(table[scope_item].eq(scope_value)) end |