Sha256: ec4bc90e85406279295d027012a3d419198dd73d54414152590c556c62bf8ba7

Contents?: true

Size: 1.59 KB

Versions: 12

Compression:

Stored size: 1.59 KB

Contents

module Para
  module Inputs
    class NestedOneInput < NestedBaseInput
      attr_reader :model
      
      def input(wrapper_options = nil)
        input_html_options[:class] << "nested-one"

        parent_model = object.class
        association = object.association(attribute_name)
        relation = parent_model.reflect_on_association(attribute_name)

        resource = object.send(attribute_name)
        @model = (resource && resource.class) || relation.klass

        unless resource
          # Build association without trying to save the new record
          resource = case association
          when ActiveRecord::Associations::HasOneThroughAssociation
            association.send(:replace, model.new)
          when ActiveRecord::Associations::HasOneAssociation
            association.send(:replace, model.new, false)
          else
            association.send(:replace, model.new)
          end
        end

        locals = options.fetch(:locals, {})

        template.render(
          partial: 'para/inputs/nested_one',
          locals: {
            form: @builder,
            model: model,
            resource: resource,
            attribute_name: attribute_name,
            nested_locals: locals,
            collapsible: collapsible || subclass,
            dom_identifier: dom_identifier,
            subclass: subclass,
            subclasses: subclasses,
            add_button_label: add_button_label,
            add_button_class: add_button_class
          }
        )
      end

      private

      def collapsible
        options.fetch(:collapsible, false)
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
para-0.12.5 lib/para/inputs/nested_one_input.rb
para-0.12.4 lib/para/inputs/nested_one_input.rb
para-0.12.3 lib/para/inputs/nested_one_input.rb
para-0.12.2 lib/para/inputs/nested_one_input.rb
para-0.12.1 lib/para/inputs/nested_one_input.rb
para-0.12.0 lib/para/inputs/nested_one_input.rb
para-0.11.4 lib/para/inputs/nested_one_input.rb
para-0.11.3 lib/para/inputs/nested_one_input.rb
para-0.11.2 lib/para/inputs/nested_one_input.rb
para-0.11.1 lib/para/inputs/nested_one_input.rb
para-0.11.0 lib/para/inputs/nested_one_input.rb
para-0.10.0 lib/para/inputs/nested_one_input.rb