diff options
author | Jeong Arm <kjwonmail@gmail.com> | 2022-12-16 01:11:14 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-15 17:11:14 +0100 |
commit | d412147d02e84cb76b252706a5357fe5d434c3db (patch) | |
tree | c5e642abcd64f12ad0879332b40d2c5afaafef15 /app/models | |
parent | 8f8c0fe88c19b38602d3f9de7742211b1b690af0 (diff) |
Save avatar or header correctly even if other one fails (#18465)
* Save avatar or header correctly if other one fails * Fix test
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/account.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index fc7359cfc..a7bda15d3 100644 --- a/app/models/account.rb +++ b/app/models/account.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 |