class ActiveRecord::RecordInvalid

end
puts invalid.record.errors
rescue ActiveRecord::RecordInvalid => invalid
complex_operation_that_internally_calls_save!
begin
Use the #record method to retrieve the record which did not validate.
when the record is invalid.
Raised by ActiveRecord::Base#save! and
= Active Record RecordInvalid

def initialize(record = nil)

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