Method: ActiveRecord::ConnectionAdapters::DatabaseStatements#insert_fixture

Defined in:
lib/active_record/connection_adapters/abstract/database_statements.rb

#insert_fixture(fixture, table_name) ⇒ Object

Inserts the given fixture into the table. Overridden in adapters that require something beyond a simple insert (eg. Oracle).



289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
# File 'lib/active_record/connection_adapters/abstract/database_statements.rb', line 289

def insert_fixture(fixture, table_name)
  fixture = fixture.stringify_keys
  columns = schema_cache.columns_hash(table_name)

  key_list   = []
  value_list = fixture.map do |name, value|
    if column = columns[name]
      key_list << quote_column_name(name)
      quote(value, column)
    else
      raise Fixture::FixtureError, %(table "#{table_name}" has no column named #{name.inspect}.)
    end
  end

  execute "INSERT INTO #{quote_table_name(table_name)} (#{key_list.join(', ')}) VALUES (#{value_list.join(', ')})", 'Fixture Insert'
end