mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-26 01:06:21 +00:00
5f3bbbfb1f
de yapa, eliminar casos especiales en el formulario
28 lines
737 B
Ruby
28 lines
737 B
Ruby
# 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
|