instance method save!

Ruby on Rails 6.0.6

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

save!(*args)

Saves the model.

If the model is new, a record gets created in the database, otherwise the existing record gets updated.

By default, #save! always runs validations. If any of them fail ActiveRecord::RecordInvalid gets raised, and the record won’t be saved. However, if you supply validate: false, validations are bypassed altogether. See ActiveRecord::Validations for more information.

By default, #save! also sets the updated_at/updated_on attributes to the current time. However, if you supply touch: false, these timestamps will not be updated.

There’s a series of callbacks associated with #save!. If any of the before_* callbacks throws :abort the action is cancelled and #save! raises ActiveRecord::RecordNotSaved. See ActiveRecord::Callbacks for further details.

Attributes marked as readonly are silently ignored if the record is being updated.

Unless an error is raised, returns true.

Parameters

args rest
options keyrest
block block
Source
# File activerecord/lib/active_record/persistence.rb, line 502
    def save!(*args, **options, &block)
      create_or_update(*args, **options, &block) || raise(RecordNotSaved.new("Failed to save the record", self))
    end

Defined in activerecord/lib/active_record/persistence.rb line 502 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::Persistence

Type at least 2 characters to search.

↑↓ navigate · open · esc close