Sha256: ffec616a943480839f8cb7d3cdfe94d7b6b33ad4df0ffc5250952cf37049b4dd
Contents?: true
Size: 952 Bytes
Versions: 54
Compression:
Stored size: 952 Bytes
Contents
module Avo module Fields class BooleanGroupField < BaseField def initialize(id, **args, &block) super(id, **args, &block) @options = args[:options] || {} end def options Avo::ExecutionContext.new( target: @options, record: record, resource: resource, view: view, field: self ).handle end def to_permitted_param ["#{id}": []] end def fill_field(record, _, values, _) new_value = {} # Reject empty values passed by hidden inputs values.reject! { |value| value == "" } # Cast values to booleans options.each do |key, _| new_value[key] = values.include? key.to_s end # Don't override existing values unless specified in options record.send(:"#{id}=", (record.send(id) || {}).merge(new_value)) record end end end end
Version data entries
54 entries across 54 versions & 1 rubygems