Class: RubyUIAdmin::Fields::RecordLinkField
- Defined in:
- lib/ruby_ui_admin/fields/record_link_field.rb
Overview
Renders a link to another record, resolved through a named resource:
field :detail, as: :record_link, use_resource: "FormGroup", only_on: :show
Instance Attribute Summary
Attributes inherited from BaseField
#block, #id, #options, #resource
Instance Method Summary collapse
- #default_hidden_views ⇒ Object
- #display_label(record) ⇒ Object
- #fill_value(record, value) ⇒ Object
- #linked_record(record) ⇒ Object
-
#target_resource(linked = nil) ⇒ Object
The resource class used to build the link.
- #use_resource ⇒ Object
Methods inherited from BaseField
#database_id, #default_value, #description, field_type, #fill, #filterable?, #formatted_value, #has_default?, #help, #initialize, #link_to_record?, #name, #permit_param, #permit_params, #permitted_param, #placeholder, #readonly?, register_as, #required?, #sort_lambda, #sortable?, #type, #value, #visible?, #visible_in_view?
Constructor Details
This class inherits a constructor from RubyUIAdmin::Fields::BaseField
Instance Method Details
#default_hidden_views ⇒ Object
10 11 12 |
# File 'lib/ruby_ui_admin/fields/record_link_field.rb', line 10 def default_hidden_views %i[new edit] end |
#display_label(record) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/ruby_ui_admin/fields/record_link_field.rb', line 22 def display_label(record) return nil if record.nil? if record.respond_to?(:to_label) then record.to_label elsif record.respond_to?(:name) then record.name elsif record.respond_to?(:title) then record.title else "#{record.model_name.human} ##{record.id}" end end |
#fill_value(record, value) ⇒ Object
42 |
# File 'lib/ruby_ui_admin/fields/record_link_field.rb', line 42 def fill_value(record, value); end |
#linked_record(record) ⇒ Object
18 19 20 |
# File 'lib/ruby_ui_admin/fields/record_link_field.rb', line 18 def linked_record(record) value(record) end |
#target_resource(linked = nil) ⇒ Object
The resource class used to build the link.
33 34 35 36 37 38 39 40 |
# File 'lib/ruby_ui_admin/fields/record_link_field.rb', line 33 def target_resource(linked = nil) if use_resource RubyUIAdmin.resource_manager.resources.find { |r| r.name.to_s.demodulize == use_resource.to_s } || (Object.const_get("RubyUIAdmin::Resources::#{use_resource}") rescue nil) elsif linked RubyUIAdmin.resource_manager.find_for_model(linked.class) end end |
#use_resource ⇒ Object
14 15 16 |
# File 'lib/ruby_ui_admin/fields/record_link_field.rb', line 14 def use_resource [:use_resource] end |