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

Ticket #5202: handle_empty_conditions.diff

File handle_empty_conditions.diff, 1.4 kB (added by Chris Wanstrath, 2 years ago)

The actual patchfile

  • activerecord/test/finder_test.rb

    old new  
    439439    assert_equal [], Post.find(:all, :conditions => ['id in (?)', []]) 
    440440  end 
    441441 
     442  def test_find_by_empty_conditions 
     443    assert Post.find(:first, :conditions => '') 
     444    assert Post.find(:first, :conditions => ['', nil]) 
     445    assert Post.find(:first, :conditions => false) 
     446    assert Post.find(:first, :conditions => {}) 
     447  end 
     448 
    442449  def test_find_by_records 
    443450    p1, p2 = Post.find(:all, :limit => 2, :order => 'id asc') 
    444451    assert_equal [p1, p2], Post.find(:all, :conditions => ['id in (?)', [p1, p2]], :order => 'id asc') 
  • activerecord/lib/active_record/base.rb

    old new  
    11601160          segments << sanitize_sql(conditions) unless conditions.nil? 
    11611161          segments << type_condition unless descends_from_active_record?         
    11621162          segments.compact! 
    1163           sql << "WHERE (#{segments.join(") AND (")}) " unless segments.empty? 
     1163          sql << "WHERE (#{segments.join(") AND (")}) " unless segments.all?(&:blank?) 
    11641164        end 
    11651165 
    11661166        def type_condition