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

Ticket #8088: fixtures_initialize_fix.diff

File fixtures_initialize_fix.diff, 1.4 kB (added by csolallo, 1 year ago)

diff file

  • fixtures.rb

    old new  
    276276 
    277277  def initialize(connection, table_name, class_name, fixture_path, file_filter = DEFAULT_FILTER_RE) 
    278278    @connection, @table_name, @fixture_path, @file_filter = connection, table_name, fixture_path, file_filter 
    279     @class_name = class_name ||  
     279    @class_name = class_name || 
    280280                  (ActiveRecord::Base.pluralize_table_names ? @table_name.singularize.camelize : @table_name.camelize) 
     281    if class_name.class == NilClass 
     282      begin 
     283        klass = eval("#{@class_name}") 
     284        @table_name = klass.table_name if klass.respond_to?(:table_name) 
     285        @connection = klass.connection if klass.respond_to?(:connection) 
     286      rescue 
     287        # swallow errors when @class_name is not really a class 
     288      end 
     289    else 
     290      @table_name = class_name.table_name if class_name.respond_to?(:table_name) 
     291      @connection = class_name.connection if class_name.respond_to?(:connection) 
     292    end 
    281293    @table_name = ActiveRecord::Base.table_name_prefix + @table_name + ActiveRecord::Base.table_name_suffix 
    282     @table_name = class_name.table_name if class_name.respond_to?(:table_name) 
    283     @connection = class_name.connection if class_name.respond_to?(:connection) 
    284294    read_fixture_files 
    285295  end 
    286296