diff --git a/app/services/site_service.rb b/app/services/site_service.rb index 90a4a339..532d48ac 100644 --- a/app/services/site_service.rb +++ b/app/services/site_service.rb @@ -88,14 +88,16 @@ SiteService = Struct.new(:site, :usuarie, :params, keyword_init: true) do end def rename(name) + moved = false Site.transaction do + raise ActiveRecord::Rollback if site.path site.name = name - raise ActiveRecord::Rollback if File.exists?(name) - FileUtils.mv site.path_was, site.path unless File.exists?(name) + FileUtils.mv (site.path_was, site.path) unless File.exists?(name) ActiveStorage::Blob.where(service_name: site.name_was).update_all(service_name: site.name) site.save + moved = true rescue StandardError - FileUtils.mv site.path, site.path_was if File.exists?(name) + FileUtils.mv (site.path, site.path_was) if moved raise end end