Class: Super::Form::SchemaTypes

Inherits:
Object
  • Object
show all
Defined in:
lib/super/form/schema_types.rb

Overview

This schema type is used on your #edit and #new forms

“‘ruby class MembersController::Controls

# ...

def new_schema
  Super::Schema.new(Super::Form::SchemaTypes.new) do |fields, type|
    fields[:name] = type.generic("form_field_text")
    fields[:rank] = type.generic("form_field_select", collection: Member.ranks.keys)
    fields[:position] = type.generic("form_field_text")
    fields[:ship_id] = type.generic(
      "form_field_select",
      collection: Ship.all.map { |s| ["#{s.name} (Ship ##{s.id})", s.id] },
    )
  end
end

# ...

end “‘

Defined Under Namespace

Classes: Generic

Instance Method Summary collapse

Instance Method Details

#_destroy(**extras) ⇒ Object



106
107
108
109
110
111
112
# File 'lib/super/form/schema_types.rb', line 106

def _destroy(**extras)
  Generic.new(
    partial_path: "form_field__destroy",
    extras: extras,
    nested: {}
  )
end

#generic(partial_path, **extras) ⇒ Object



76
77
78
# File 'lib/super/form/schema_types.rb', line 76

def generic(partial_path, **extras)
  Generic.new(partial_path: partial_path, extras: extras, nested: {})
end

#has_many(reader, **extras) ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
# File 'lib/super/form/schema_types.rb', line 80

def has_many(reader, **extras)
  nested = @fields.nested do
    yield
  end

  Generic.new(
    partial_path: "form_has_many",
    extras: extras.merge(reader: reader),
    nested: nested
  )
end

#has_one(reader, **extras) ⇒ Object Also known as: belongs_to



92
93
94
95
96
97
98
99
100
101
102
# File 'lib/super/form/schema_types.rb', line 92

def has_one(reader, **extras)
  nested = @fields.nested do
    yield
  end

  Generic.new(
    partial_path: "form_has_one",
    extras: extras.merge(reader: reader),
    nested: nested
  )
end

#setup(fields:) ⇒ Object



72
73
74
# File 'lib/super/form/schema_types.rb', line 72

def setup(fields:)
  @fields = fields
end