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
-
#update(attributes, options = {}) ⇒ Object
(also: #update_attributes)
Updates the attributes of the model from the passed-in hash and saves the record, all wrapped in a transaction.
-
#update!(attributes, options = {}) ⇒ Object
(also: #update_attributes!)
Updates its receiver just like
update_attributes
but callssave!
instead ofsave
, so an exception is raised if the record is invalid.
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, = {}) # 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, ) 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, = {}) # 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, ) save! end end |