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

Changeset 5478

Show
Ignore:
Timestamp:
11/10/06 02:00:14 (2 years ago)
Author:
bitsweat
Message:

Don't inspect unloaded associations. Closes #2905.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/activerecord/CHANGELOG

    r5477 r5478  
    11*SVN* 
     2 
     3* Don't inspect unloaded associations.  #2905 [lmarlow] 
    24 
    35* SQLite: use AUTOINCREMENT primary key in >= 3.1.0.  #6588 [careo] 
  • trunk/activerecord/lib/active_record/associations/association_proxy.rb

    r5264 r5478  
    7373      end 
    7474       
     75      def inspect 
     76        loaded? ? @target.inspect : "<#{@reflection.name} not loaded yet>" 
     77      end 
     78 
    7579      protected 
    7680        def dependent? 
  • trunk/activerecord/test/associations_test.rb

    r5401 r5478  
    8787    david.posts_with_extension.first   # force load target 
    8888    assert_equal  david.posts_with_extension, david.posts_with_extension.testing_proxy_target 
     89  end 
     90 
     91  def test_inspect_does_not_load_target 
     92    david = authors(:david) 
     93    not_loaded_string = '<posts not loaded yet>' 
     94    not_loaded_re = Regexp.new(not_loaded_string) 
     95 
     96    2.times do 
     97      assert !david.posts.loaded?, "Posts should not be loaded yet" 
     98      assert_match not_loaded_re, david.inspect 
     99      assert_equal not_loaded_string, david.posts.inspect 
     100 
     101      assert !david.posts.empty?, "There should be more than one post" 
     102      assert !david.posts.loaded?, "Posts should still not be loaded yet" 
     103      assert_match not_loaded_re, david.inspect 
     104      assert_equal not_loaded_string, david.posts.inspect 
     105 
     106      assert !david.posts.find(:all).empty?, "There should be more than one post" 
     107      assert !david.posts.loaded?, "Posts should still not be loaded yet" 
     108      assert_match not_loaded_re, david.inspect 
     109      assert_equal not_loaded_string, david.posts.inspect 
     110 
     111      assert !david.posts(true).empty?, "There should be more than one post" 
     112      assert david.posts.loaded?, "Posts should be loaded now" 
     113      assert_no_match  not_loaded_re, david.inspect 
     114      assert_not_equal not_loaded_string, david.posts.inspect 
     115 
     116      david.reload 
     117    end 
    89118  end 
    90119end