5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-22 19:16:23 +00:00

validar el sitio antes de subir una imagen

si `Site` no es válido (por ejemplo la `description` es muy corta), no se
pueden guardar los archivos estáticos asociados, porque
`ActiveStorage::Attached` solo se copia al disco cuando se guardan a
través de `Site#static_files`.

el error que se producía es que `MetadataFile` no puede vincular el
archivo porque todavía no fue copiado al disco.

este cambio have que `MetadataFile` no valide cuando `Site` no valida.

queda un error pendiente en `Site::StaticFileMigration` con una
situación similar.  para eso necesitamos identificar el momento en que
el archivo se "sube" al disco, es decir se copia el `IO` al directorio,
a través de `ActiveStorage::Service::DiskService#upload`.

fixes #1197
fixes #1196
fixes #1195
fixes #1194
fixes #1193
fixes #1192
This commit is contained in:
f 2021-04-24 19:55:15 -03:00
parent 9ae9450875
commit 2fbbb212ad
3 changed files with 5 additions and 0 deletions

View file

@ -16,6 +16,7 @@ class MetadataFile < MetadataTemplate
def validate def validate
super super
errors << I18n.t("metadata.#{type}.site_invalid") if site.invalid?
errors << I18n.t("metadata.#{type}.path_required") if path_missing? errors << I18n.t("metadata.#{type}.path_required") if path_missing?
errors << I18n.t("metadata.#{type}.no_file_for_description") if no_file_for_description? errors << I18n.t("metadata.#{type}.no_file_for_description") if no_file_for_description?

View file

@ -34,10 +34,12 @@ en:
metadata: metadata:
cant_be_empty: 'This field cannot be empty' cant_be_empty: 'This field cannot be empty'
image: image:
site_invalid: 'The image cannot be stored if the site configuration is not valid'
not_an_image: 'Not an image' not_an_image: 'Not an image'
path_required: 'Missing image for upload' path_required: 'Missing image for upload'
no_file_for_description: "There's a description with no associated image" no_file_for_description: "There's a description with no associated image"
file: file:
site_invalid: 'The file cannot be stored if the site configuration is not valid'
path_required: "Missing file for upload" path_required: "Missing file for upload"
no_file_for_description: "There's a description with no associated file" no_file_for_description: "There's a description with no associated file"
event: event:

View file

@ -34,10 +34,12 @@ es:
metadata: metadata:
cant_be_empty: 'El campo no puede estar vacío' cant_be_empty: 'El campo no puede estar vacío'
image: image:
site_invalid: 'La imagen no se puede almacenar si la configuración del sitio no es válida'
not_an_image: 'No es una imagen' not_an_image: 'No es una imagen'
path_required: 'Se necesita una imagen' path_required: 'Se necesita una imagen'
no_file_for_description: 'Se envió una descripción sin imagen asociada' no_file_for_description: 'Se envió una descripción sin imagen asociada'
file: file:
site_invalid: 'El archivo no se puede almacenar si la configuración del sitio no es válida'
path_required: 'Se necesita un archivo' path_required: 'Se necesita un archivo'
no_file_for_description: 'se envió una descripción sin archivo asociado' no_file_for_description: 'se envió una descripción sin archivo asociado'
event: event: