Sha256: 951da21d4734a589445956263b019b170d32592426b30a5bc6eb872d2b737f16

Contents?: true

Size: 737 Bytes

Versions: 1

Compression:

Stored size: 737 Bytes

Contents

module Para
  module AttributeField
    class NestedManyField < AttributeField::HasManyField
      def parse_input(params)
        if (nested_attributes = params[nested_attributes_key])
          nested_attributes.each do |index, attributes|
            nested_model_mappings.fields.each do |field|
              field.parse_input(attributes)
            end
            params[nested_attributes_key][index] = attributes
          end
        else
          super(params)
        end
      end

      def nested_model_mappings
        @nested_model_mappings ||= AttributeFieldMappings.new(reflection.klass)
      end

      def nested_attributes_key
        @nested_attributes_key ||= :"#{ name }_attributes"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
para-0.4.0 lib/para/attribute_field/nested_many.rb