Class: CrudComponents::Fields::ComputedField

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

Overview

A name Rails doesn’t know: a public model method (rendered by its value type) or a declared render block. Query behavior only through facets —a Ruby-computed value has no SQL meaning until a facet gives it one.

Direct Known Subclasses

DynamicField, PathField

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, #default_editable?, #derived_filter_control, #derived_filterable?, #derived_sortable?, #eager_load, #editable?, #editable_permitted?, #filter_choices, #filter_control, #filter_facet, #filter_includes_null?, #filterable?, #form_control, #form_partial, #group_label, #group_model, #header, #header_actions, #human_name, #initialize, #nullable?, #permit_param, #permitted?, #picker_label, #range_filter?, #render_block, #renderer_options, #sort_facet, #sortable?

Constructor Details

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

Instance Method Details

#default_rendererObject



14
# File 'lib/crud_components/fields/computed_field.rb', line 14

def default_renderer = :string

#renderer(record = nil) ⇒ Object



7
8
9
10
11
12
# File 'lib/crud_components/fields/computed_field.rb', line 7

def renderer(record = nil)
  return options[:as] if options[:as]
  return nil if render_block

  record ? renderer_for_value(value(record)) : :string
end

#value(record) ⇒ Object



16
17
18
# File 'lib/crud_components/fields/computed_field.rb', line 16

def value(record)
  render_block ? nil : record.public_send(name)
end