Module: Avo::Concerns::FormBuilder

Included in:
Views::ResourceEditComponent
Defined in:
lib/avo/concerns/form_builder.rb

Instance Method Summary collapse

Instance Method Details

#build_form(&block) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/avo/concerns/form_builder.rb', line 4

def build_form(&block)
  form_with model: @resource.record,
    scope: @resource.form_scope,
    url: form_url,
    method: is_edit? ? :put : :post,
    local: true,
    html: {
      novalidate: true,
      data: {
        controller: "form avo-reactive-fields",
        action: "keydown.ctrl+enter->form#submit keydown.meta+enter->form#submit"
      }
    },
    multipart: true, &block
end

#form_urlObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/avo/concerns/form_builder.rb', line 20

def form_url
  if is_edit?
    helpers.resource_path(
      record: @resource.record,
      resource: @resource
    )
  else
    helpers.resources_path(
      resource: @resource,
      via_relation_class: params[:via_relation_class],
      via_relation: params[:via_relation],
      via_record_id: params[:via_record_id]
    )
  end
end

#is_edit?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/avo/concerns/form_builder.rb', line 36

def is_edit?
  @view.in?(%w[edit update])
end