Active Record RecordInvalid

Raised by ActiveRecord::Base#save! and ActiveRecord::Base#create! when the record is invalid. Use the record method to retrieve the record which did not validate.

begin
  complex_operation_that_internally_calls_save!
rescue ActiveRecord::RecordInvalid => invalid
  puts invalid.record.errors
end

Methods

Attributes

[R] record

Class Public methods

new(record = nil)

📝 Source code
# File activerecord/lib/active_record/validations.rb, line 18
    def initialize(record = nil)
      if record
        @record = record
        errors = @record.errors.full_messages.join(", ")
        message = I18n.t(:"#{@record.class.i18n_scope}.errors.messages.record_invalid", errors: errors, default: :"errors.messages.record_invalid")
      else
        message = "Record invalid"
      end

      super(message)
    end
🔎 See on GitHub