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
|
end
|
||||||
|
|
||||||
def build_relation(klass, table, attribute, value) #:nodoc:
|
def build_relation(klass, table, attribute, value) #:nodoc:
|
||||||
|
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]
|
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?
|
value = column.limit ? value.to_s[0, column.limit] : value.to_s if !value.nil? && column.text?
|
||||||
|
|
||||||
if !options[:case_sensitive] && value && column.text?
|
if !options[:case_sensitive] && value && column.text?
|
||||||
|
|
|
@ -104,6 +104,18 @@ class UniquenessValidationTest < ActiveRecord::TestCase
|
||||||
assert !r2.valid?, "Saving r2 first time"
|
assert !r2.valid?, "Saving r2 first time"
|
||||||
end
|
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
|
def test_validate_uniqueness_scoped_to_defining_class
|
||||||
t = Topic.create("title" => "What, me worry?")
|
t = Topic.create("title" => "What, me worry?")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue