Class: Super::Form::SchemaTypes
- Inherits:
-
Object
- Object
- Super::Form::SchemaTypes
- 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
- #_destroy(**extras) ⇒ Object
- #generic(partial_path, **extras) ⇒ Object
- #has_many(reader, **extras) ⇒ Object
- #has_one(reader, **extras) ⇒ Object (also: #belongs_to)
- #setup(fields:) ⇒ Object
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 |