diff --git a/app/models/concerns/pages_core/page_model/attachments.rb b/app/models/concerns/pages_core/page_model/attachments.rb index 6f2cf163..c44c2a43 100644 --- a/app/models/concerns/pages_core/page_model/attachments.rb +++ b/app/models/concerns/pages_core/page_model/attachments.rb @@ -33,6 +33,11 @@ def page_files super.in_locale(locale) end + def page_files_attributes=(attrs) + ids = page_files.map(&:id) + super(attrs.reject { |a| a["_destroy"] && ids.exclude?(a["id"]) }) + end + def files page_files end diff --git a/app/models/concerns/pages_core/page_model/images.rb b/app/models/concerns/pages_core/page_model/images.rb index 3c19da71..4fb7222e 100644 --- a/app/models/concerns/pages_core/page_model/images.rb +++ b/app/models/concerns/pages_core/page_model/images.rb @@ -19,11 +19,11 @@ module Images after_save :update_primary_image - accepts_nested_attributes_for :page_images, - reject_if: proc { |a| - a["image_id"].blank? - }, - allow_destroy: true + accepts_nested_attributes_for( + :page_images, + reject_if: proc { |a| a["image_id"].blank? }, + allow_destroy: true + ) end def image? @@ -42,6 +42,11 @@ def page_images super.in_locale(locale) end + def page_images_attributes=(attrs) + ids = page_images.map(&:id) + super(attrs.reject { |a| a["_destroy"] && ids.exclude?(a["id"]) }) + end + private def update_primary_image