module ActiveRecord::MassAssignmentSecurity::Persistence::ClassMethods
Public Instance Methods
create(attributes = nil, options = {}, &block)
click to toggle source
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.
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 lib/active_record/mass_assignment_security/persistence.rb, line 41 def create(attributes = nil, options = {}, &block) if attributes.is_a?(Array) attributes.collect { |attr| create(attr, options, &block) } else object = new(attributes, options, &block) object.save object end end