# frozen_string_literal: true # Almacena el UUID de otro Post class MetadataBelongsTo < MetadataRelatedPosts # TODO: Convertir algunos tipos de valores en módulos para poder # implementar varios tipos de campo sin repetir código # # @include MetadataString # # Una string vacía def default_value '' end # @see MetadataTemplate def to_param name end def validate super errors << I18n.t('metadata.belongs_to.missing_post') unless post_exists? errors.empty? end private def sanitize(uuid) uuid.gsub(/[^a-f0-9\-]/, '') end def post_exists? !value.blank? && posts.find(sanitize(value), uuid: true) end end