public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
Fixes validates_uniquness_of problem with case insensitive string containing 
newline characters

Signed-off-by: Michael Koziarski <michael@koziarski.com>
wmoxam (author)
Thu Sep 11 08:33:15 -0700 2008
NZKoz (committer)
Thu Sep 11 08:40:14 -0700 2008
commit  923f4ecad202e45ef117d592053c8b86549eb9d7
tree    cd3cb4e898b3b8eab54144e3861e77b108da9fc5
parent  c98cb8ffc2f42bff565994951af9412e52fcdc58
...
665
666
667
668
 
669
670
671
...
665
666
667
 
668
669
670
671
0
@@ -665,7 +665,7 @@ module ActiveRecord
0
             condition_params = [value]
0
           else
0
             condition_sql = "LOWER(#{sql_attribute}) #{comparison_operator}"
0
-            condition_params = [value.chars.downcase]
0
+            condition_params = [value.chars.downcase.to_s]
0
           end
0
 
0
           if scope = configuration[:scope]
...
364
365
366
 
 
 
 
 
 
 
367
368
369
...
364
365
366
367
368
369
370
371
372
373
374
375
376
0
@@ -364,6 +364,13 @@ class ValidationsTest < ActiveRecord::TestCase
0
     assert t2.save, "Should now save t2 as unique"
0
   end
0
 
0
+  def test_validates_uniquness_with_newline_chars
0
+    Topic.validates_uniqueness_of(:title, :case_sensitive => false)
0
+
0
+    t = Topic.new("title" => "new\nline")
0
+    assert t.save, "Should save t as unique"
0
+  end
0
+
0
   def test_validate_uniqueness_with_scope
0
     Reply.validates_uniqueness_of(:content, :scope => "parent_id")
0
 

Comments