static public Method

Fixtures.create_fixtures(fixtures_directory, table_names, class_names = {}) { |: ActiveRecord::Base.connection| ... }

There's no documentation for this item.

Source Code

# File active_record/fixtures.rb, line 500
def self.create_fixtures(fixtures_directory, table_names, class_names = {})
  table_names = [table_names].flatten.map { |n| n.to_s }
  connection  = block_given? ? yield : ActiveRecord::Base.connection

  table_names_to_fetch = table_names.reject { |table_name| fixture_is_cached?(connection, table_name) }

  unless table_names_to_fetch.empty?
    ActiveRecord::Base.silence do
      connection.disable_referential_integrity do
        fixtures_map = {}

        fixtures = table_names_to_fetch.map do |table_name|
          fixtures_map[table_name] = Fixtures.new(connection, File.split(table_name.to_s).last, class_names[table_name.to_sym], File.join(fixtures_directory, table_name.to_s))
        end

        all_loaded_fixtures.update(fixtures_map)

        connection.transaction(Thread.current['open_transactions'].to_i == 0) do
          fixtures.reverse.each { |fixture| fixture.delete_existing_fixtures }
          fixtures.each { |fixture| fixture.insert_fixtures }

          # Cap primary key sequences to max(pk).
          if connection.respond_to?(:reset_pk_sequence!)
            table_names.each do |table_name|
              connection.reset_pk_sequence!(table_name)
            end
          end
        end

        cache_fixtures(connection, fixtures)
      end
    end
  end
  cached_fixtures(connection, table_names)
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.