Methods
C
Instance Public methods
create(attributes = nil, options = {}, &block)

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 be a Hash or an Array of Hashes. These Hashes describe the attributes on the objects that are to be created.

create respects mass-assignment security and accepts either :as or :without_protection options in the options parameter.

Examples

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

  # Create a single new object using the :admin mass-assignment security role
  User.create({ :first_name => 'Jamie', :is_admin => true }, :as => :admin)

  # Create a single new object bypassing mass-assignment security
  User.create({ :first_name => 'Jamie', :is_admin => true }, :without_protection => true)

  # 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
    # File activerecord/lib/active_record/persistence.rb, line 40
40:       def create(attributes = nil, options = {}, &block)
41:         if attributes.is_a?(Array)
42:           attributes.collect { |attr| create(attr, options, &block) }
43:         else
44:           object = new(attributes, options, &block)
45:           object.save
46:           object
47:         end
48:       end