Module: ActiveRecord::MassAssignmentSecurity::Persistence

Extended by:
ActiveSupport::Concern
Included in:
Base
Defined in:
lib/active_record/mass_assignment_security/persistence.rb

Overview

Active Record Persistence

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#update(attributes, options = {}) ⇒ Object Also known as: update_attributes

Updates the attributes of the model from the passed-in hash and saves the record, all wrapped in a transaction. If the object is invalid, the saving will fail and false will be returned.

When updating model attributes, mass-assignment security protection is respected. If no :as option is supplied then the :default role will be used. If you want to bypass the forbidden attributes protection then you can do so using the :without_protection option.



60
61
62
63
64
65
66
67
# File 'lib/active_record/mass_assignment_security/persistence.rb', line 60

def update(attributes, options = {})
  # The following transaction covers any possible database side-effects of the
  # attributes assignment. For example, setting the IDs of a child collection.
  with_transaction_returning_status do
    assign_attributes(attributes, options)
    save
  end
end

#update!(attributes, options = {}) ⇒ Object Also known as: update_attributes!

Updates its receiver just like update_attributes but calls save! instead of save, so an exception is raised if the record is invalid.



72
73
74
75
76
77
78
79
# File 'lib/active_record/mass_assignment_security/persistence.rb', line 72

def update!(attributes, options = {})
  # The following transaction covers any possible database side-effects of the
  # attributes assignment. For example, setting the IDs of a child collection.
  with_transaction_returning_status do
    assign_attributes(attributes, options)
    save!
  end
end