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(attributes, options = {}) ⇒ Object
Updates the attributes of the model from the passed-in hash and saves the record, all wrapped in a transaction.
-
#update_attributes!(attributes, options = {}) ⇒ Object
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(attributes, options = {}) ⇒ Object
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(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!(attributes, options = {}) ⇒ Object
Updates its receiver just like update_attributes
but calls save!
instead of save
, so an exception is raised if the record is invalid.
71 72 73 74 75 76 77 78 |
# File 'lib/active_record/mass_assignment_security/persistence.rb', line 71 def update_attributes!(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 |