Save avatar or header correctly even if other one fails (#18465)

* Save avatar or header correctly if other one fails

* Fix test
local
Jeong Arm 1 year ago committed by GitHub
parent 8f8c0fe88c
commit d412147d02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      app/models/account.rb
  2. 2
      spec/models/account_spec.rb

@ -341,9 +341,15 @@ class Account < ApplicationRecord
def save_with_optional_media!
save!
rescue ActiveRecord::RecordInvalid
self.avatar = nil
self.header = nil
rescue ActiveRecord::RecordInvalid => e
errors = e.record.errors.errors
errors.each do |err|
if err.attribute == :avatar
self.avatar = nil
elsif err.attribute == :header
self.header = nil
end
end
save!
end

@ -160,7 +160,7 @@ RSpec.describe Account, type: :model do
expect(account.avatar_remote_url).to eq 'https://remote.test/invalid_avatar'
expect(account.header_remote_url).to eq expectation.header_remote_url
expect(account.avatar_file_name).to eq nil
expect(account.header_file_name).to eq nil
expect(account.header_file_name).to eq expectation.header_file_name
end
end
end

Loading…
Cancel
Save