mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
parent
5f472785fe
commit
3b5fbafab0
2 changed files with 21 additions and 1 deletions
|
@ -56,7 +56,15 @@ module ActiveRecord
|
|||
end
|
||||
|
||||
def build_relation(klass, table, attribute, value) #:nodoc:
|
||||
column = klass.columns_hash[attribute.to_s]
|
||||
reflection = klass.reflect_on_association(attribute)
|
||||
column = nil
|
||||
if(reflection)
|
||||
column = klass.columns_hash[reflection.foreign_key]
|
||||
attribute = reflection.foreign_key
|
||||
value = value.attributes[reflection.primary_key_column.name]
|
||||
else
|
||||
column = klass.columns_hash[attribute.to_s]
|
||||
end
|
||||
value = column.limit ? value.to_s[0, column.limit] : value.to_s if !value.nil? && column.text?
|
||||
|
||||
if !options[:case_sensitive] && value && column.text?
|
||||
|
|
|
@ -104,6 +104,18 @@ class UniquenessValidationTest < ActiveRecord::TestCase
|
|||
assert !r2.valid?, "Saving r2 first time"
|
||||
end
|
||||
|
||||
def test_validate_uniqueness_with_object_arg
|
||||
Reply.validates_uniqueness_of(:topic)
|
||||
|
||||
t = Topic.create("title" => "I'm unique!")
|
||||
|
||||
r1 = t.replies.create "title" => "r1", "content" => "hello world"
|
||||
assert r1.valid?, "Saving r1"
|
||||
|
||||
r2 = t.replies.create "title" => "r2", "content" => "hello world"
|
||||
assert !r2.valid?, "Saving r2 first time"
|
||||
end
|
||||
|
||||
def test_validate_uniqueness_scoped_to_defining_class
|
||||
t = Topic.create("title" => "What, me worry?")
|
||||
|
||||
|
|
Loading…
Reference in a new issue