aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2008-03-31 12:57:47 +0000
committerPratik Naik <pratiknaik@gmail.com>2008-03-31 12:57:47 +0000
commit92cd8811aa3e113053a37bccb39cf5f09d9ef84d (patch)
tree1df3ed1b15cdb5ec4461a235f961243c5c00b425 /activerecord/lib/active_record
parentcc2d6a0b93251fce06bab15c52dbe0a5d5a8342c (diff)
downloadrails-92cd8811aa3e113053a37bccb39cf5f09d9ef84d.tar.gz
rails-92cd8811aa3e113053a37bccb39cf5f09d9ef84d.tar.bz2
rails-92cd8811aa3e113053a37bccb39cf5f09d9ef84d.zip
Ensure that validates_uniqueness_of works with with_scope. Closes #9235. [nik.wakelin, cavalle]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9168 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record')
-rwxr-xr-xactiverecord/lib/active_record/validations.rb14
1 files changed, 8 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/validations.rb b/activerecord/lib/active_record/validations.rb
index 5e2f710db6..72c48d1e2a 100755
--- a/activerecord/lib/active_record/validations.rb
+++ b/activerecord/lib/active_record/validations.rb
@@ -654,13 +654,15 @@ module ActiveRecord
condition_params << record.send(:id)
end
- results = connection.select_all(
- construct_finder_sql(
- :select => "#{attr_name}",
- :from => "#{finder_class.quoted_table_name}",
- :conditions => [condition_sql, *condition_params]
+ results = finder_class.with_exclusive_scope do
+ connection.select_all(
+ construct_finder_sql(
+ :select => "#{attr_name}",
+ :from => "#{finder_class.quoted_table_name}",
+ :conditions => [condition_sql, *condition_params]
+ )
)
- )
+ end
unless results.length.zero?
found = true