# frozen_string_literal: true # Implementa valores por sí o por no class MetadataBoolean < MetadataTemplate def default_value false end # Los checkboxes son especiales porque la especificación de HTML # indica que no se envían aquellos checkboxes con valores vacíos, con # lo que nunca sabemos cuándo se los está deshabilitando. Rails # subsana esto enviando un valor vacío bajo el mismo nombre # (generalmente '0'). # # En este caso, queremos priorizar el dato enviado por le usuarie # antes que el generado internamente. def value return false if false? self[:value].present? || document.data.fetch(name.to_s, default_value) end private def false? self[:value] == '0' end end