Sha256: 429e3319995da561452d9608723d3b8ea3ca2861eb0520eaee5a0c13da550c95

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module Fields
  class MultipleNestedFormField < Field
    after_create do
      build_nested_form.save!
    end

    serialize :validations, Validations::MultipleNestedFormField
    serialize :options, NonConfigurable

    def attached_nested_form?
      true
    end

    def interpret_to(model, overrides: {})
      check_model_validity!(model)

      accessibility = overrides.fetch(:accessibility, self.accessibility)
      return model if accessibility == :hidden

      overrides[:name] = name

      nested_model = nested_form.to_virtual_model(overrides: {_global: {accessibility: accessibility}})

      model.nested_models[name] = nested_model

      model.embeds_many name, anonymous_class: nested_model, validate: true
      model.accepts_nested_attributes_for name, reject_if: :all_blank
      if accessibility == :readonly
        model.attr_readonly name
      end

      interpret_validations_to model, accessibility, overrides
      interpret_extra_to model, accessibility, overrides

      model
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
script_core-0.1.0 spec/dummy/app/models/fields/multiple_nested_form_field.rb