public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
Fix blank conditions on AssociationCollection#find. [#104 state:resolved]

Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
jviney (author)
Sun May 11 13:01:18 -0700 2008
lifo (committer)
Sun May 11 13:01:18 -0700 2008
commit  0cbdd96c349c56c47299ca3c2bfa5d8c4f5e5a11
tree    5f21d58b948263a636a7ab5a64d39e38bf6836ed
parent  0b8b582e0668416c6e6760e97a64b9fa3507782c
...
1910
1911
1912
 
 
1913
1914
1915
...
1910
1911
1912
1913
1914
1915
1916
1917
0
@@ -1910,6 +1910,8 @@ module ActiveRecord #:nodoc:
0
         #   { :name => "foo'bar", :group_id => 4 }  returns "name='foo''bar' and group_id='4'"
0
         #   "name='foo''bar' and group_id='4'" returns "name='foo''bar' and group_id='4'"
0
         def sanitize_sql_for_conditions(condition)
0
+          return nil if condition.blank?
0
+
0
           case condition
0
             when Array; sanitize_sql_array(condition)
0
             when Hash;  sanitize_sql_hash_for_conditions(condition)
...
48
49
50
 
 
 
 
 
 
51
52
53
...
851
852
853
854
855
 
...
48
49
50
51
52
53
54
55
56
57
58
59
...
857
858
859
 
860
861
0
@@ -48,6 +48,12 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
0
     assert_equal 2, Firm.find(:first).clients.length
0
   end
0
 
0
+  def test_find_with_blank_conditions
0
+    [[], {}, nil, ""].each do |blank|
0
+      assert_equal 2, Firm.find(:first).clients.find(:all, :conditions => blank).size
0
+    end
0
+  end
0
+
0
   def test_find_many_with_merged_options
0
     assert_equal 1, companies(:first_firm).limited_clients.size
0
     assert_equal 1, companies(:first_firm).limited_clients.find(:all).size
0
@@ -851,4 +857,4 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
0
     assert ! firm.clients.include?(client)
0
   end
0
 
0
-end
0
\ No newline at end of file
0
+end

Comments