validar de más has_many

esta validación de has_many no permite guardar el post si no coinciden
la cantidad de valores con los posts asociados, lo que funciona en casos
muy ideales y no deja que se pueda guardar el post desde el formulario.

el formulario envía un valor vacío para poder indicar que se quieren
borrar todos los artículos por limitaciones de http, pero también suma
un ítem vacío a la lista, con lo que la cantidad de posts encontrados
siempre es 1 menor.

de la misma forma, si la relación está rota porque uno de los posts
asociados ya no existe, no permite guardar sin dar mayor feedback.  así
que por ahora dejamos que se puedan guardar.
This commit is contained in:
f 2021-05-17 17:56:56 -03:00
parent dab44aa1cf
commit 2612f44965

View file

@ -6,14 +6,6 @@
# Localmente tenemos un Array de UUIDs. Remotamente tenemos una String
# apuntando a un Post, que se mantiene actualizado como el actual.
class MetadataHasMany < MetadataRelatedPosts
def validate
super
errors << I18n.t('metadata.has_many.missing_posts') unless posts_exist?
errors.empty?
end
# Todos los Post relacionados
def has_many
return default_value if value.blank?
@ -65,8 +57,4 @@ class MetadataHasMany < MetadataRelatedPosts
def related_methods
@related_methods ||= %i[has_many had_many].freeze
end
def posts_exist?
has_many.size == sanitize(value).size
end
end