Class: CrudComponents::Fields::AttachmentField

Inherits:
Base
  • Object
show all
Defined in:
lib/crud_components/fields/attachment_field.rb

Overview

Active Storage attachment: rendered by content type — image inline, previewable (e.g. PDF) as a preview, otherwise an icon + filename link.

Constant Summary

Constants inherited from Base

Base::NON_EDITABLE_COLUMNS

Instance Attribute Summary

Attributes inherited from Base

#facets, #model, #name, #options

Instance Method Summary collapse

Methods inherited from Base

#apply_derived_filter, #apply_filter, #apply_filter_facet, #apply_sort, #column, #custom_header?, #declared_preloads, #derived_filter_control, #derived_filterable?, #derived_sortable?, #editable?, #editable_permitted?, #filter_choices, #filter_control, #filter_facet, #filter_includes_null?, #filterable?, #form_partial, #group_label, #group_model, #header, #header_actions, #human_name, #initialize, #nullable?, #permitted?, #picker_label, #range_filter?, #render_block, #renderer, #renderer_options, #sort_facet, #sortable?, #value

Constructor Details

This class inherits a constructor from CrudComponents::Fields::Base

Instance Method Details

#default_editable?Boolean

── forms ────────────────────────────────────────────────────────────

Returns:

  • (Boolean)


17
# File 'lib/crud_components/fields/attachment_field.rb', line 17

def default_editable? = true

#default_rendererObject



6
# File 'lib/crud_components/fields/attachment_field.rb', line 6

def default_renderer = :attachment

#eager_loadObject



12
13
14
# File 'lib/crud_components/fields/attachment_field.rb', line 12

def eager_load
  [many? ? :"#{name}_attachments" : :"#{name}_attachment", *declared_preloads]
end

#form_controlObject



18
# File 'lib/crud_components/fields/attachment_field.rb', line 18

def form_control = :file

#many?Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/crud_components/fields/attachment_field.rb', line 8

def many?
  @many ||= model.reflect_on_attachment(name).macro == :has_many_attached
end

#permit_paramObject



19
# File 'lib/crud_components/fields/attachment_field.rb', line 19

def permit_param = many? ? { name => [] } : name