Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 3402

Show
Ignore:
Timestamp:
01/13/06 01:51:45 (2 years ago)
Author:
marcel
Message:

Disambiguate table names for columns in validates_uniquness_of's WHERE clause. Closes #3423.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/activerecord/CHANGELOG

    r3393 r3402  
    11*SVN* 
     2 
     3* Disambiguate table names for columns in validates_uniquness_of's WHERE clause. #3423 [alex.borovsky@gmail.com] 
    24 
    35* .with_scope imposed create parameters now bypass attr_protected [Tobias Luetke] 
  • trunk/activerecord/lib/active_record/validations.rb

    r3206 r3402  
    497497 
    498498        validates_each(attr_names,configuration) do |record, attr_name, value| 
    499           condition_sql = "#{attr_name} #{attribute_condition(value)}" 
     499          condition_sql = "#{record.class.table_name}.#{attr_name} #{attribute_condition(value)}" 
    500500          condition_params = [value] 
    501501          if scope = configuration[:scope] 
    502502            Array(scope).map do |scope_item| 
    503503              scope_value = record.send(scope_item) 
    504               condition_sql << " AND #{scope_item} #{attribute_condition(scope_value)}" 
     504              condition_sql << " AND #{record.class.table_name}.#{scope_item} #{attribute_condition(scope_value)}" 
    505505              condition_params << scope_value 
    506506            end 
    507507          end 
    508508          unless record.new_record? 
    509             condition_sql << " AND #{record.class.primary_key} <> ?" 
     509            condition_sql << " AND #{record.class.table_name}.#{record.class.primary_key} <> ?" 
    510510            condition_params << record.send(:id) 
    511511          end