Sha256: 9ccbdf3172f4fb5848cf83fbc133be72c19a372273c1100c38faa3740d1b3f7f
Contents?: true
Size: 966 Bytes
Versions: 4
Compression:
Stored size: 966 Bytes
Contents
module Madmin module Fields class NestedHasMany < Field DEFAULT_ATTRIBUTES = %w[_destroy id].freeze def nested_attributes resource.attributes.reject { |name, attribute| skipped_fields.include?(name) } end def resource "#{to_model.name}Resource".constantize end def to_param {"#{attribute_name}_attributes": permitted_fields} end def to_partial_path(name) unless %w[index show form fields].include? name raise ArgumentError, "`partial` must be 'index', 'show', 'form' or 'fields'" end "/madmin/fields/#{self.class.field_type}/#{name}" end def to_model attribute_name.to_s.singularize.classify.constantize end private def permitted_fields (resource.permitted_params - skipped_fields + DEFAULT_ATTRIBUTES).uniq end def skipped_fields options[:skip] || [] end end end end
Version data entries
4 entries across 4 versions & 1 rubygems