Sha256: 1bf9450905a1498fcdb171f82e929ffd99ef7adf0240d125f1f1c6d6b6ed3eb7

Contents?: true

Size: 1.32 KB

Versions: 12

Compression:

Stored size: 1.32 KB

Contents

module Para
  module Inputs
    class NestedOneInput < NestedBaseInput
      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.replace(model.new)
          when ActiveRecord::Associations::HasOneAssociation
            association.replace(model.new, false)
          else
            association.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
          }
        )
      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.8.1 lib/para/inputs/nested_one_input.rb
para-0.8.0 lib/para/inputs/nested_one_input.rb
para-0.7.4.p1 lib/para/inputs/nested_one_input.rb
para-0.7.4 lib/para/inputs/nested_one_input.rb
para-0.7.3.p6 lib/para/inputs/nested_one_input.rb
para-0.7.3.p5 lib/para/inputs/nested_one_input.rb
para-0.7.3.p4 lib/para/inputs/nested_one_input.rb
para-0.7.3.p3 lib/para/inputs/nested_one_input.rb
para-0.7.3.p2 lib/para/inputs/nested_one_input.rb
para-0.7.3.p1 lib/para/inputs/nested_one_input.rb
para-0.7.3 lib/para/inputs/nested_one_input.rb
para-0.7.2 lib/para/inputs/nested_one_input.rb