method

create

create(attributes = nil, &block)
public

Creates an object (or multiple objects) and saves it to the database, if validations pass. The resulting object is returned whether the object was saved successfully to the database or not.

The attributes parameter can be either a Hash or an Array of Hashes. These Hashes describe the attributes on the objects that are to be created.

Examples

# Create a single new object
User.create(first_name: 'Jamie')

# Create an Array of new objects
User.create([{ first_name: 'Jamie' }, { first_name: 'Jeremy' }])

# Create a single object and pass it into a block to set other attributes.
User.create(first_name: 'Jamie') do |u|
  u.is_admin = false
end

# Creating an Array of new objects using a block, where the block is executed for each object:
User.create([{ first_name: 'Jamie' }, { first_name: 'Jeremy' }]) do |u|
  u.is_admin = false
end

2Notes

Location of this method in older versions

roryokane · May 25, 2016

Before v3.2.1, this method was in ActiveRecord::Base.create .

Active Record Import

nidhinnambiar · May 25, 2016

With activerecord-import, you’d just add your records to an array and call import:

records_to_import = pricing_data.map do |location, price|
Inventory.new(location: location, price: price) 
end

Inventory.import records_to_import