Sha256: b98d7e408927487e84b0be85ae1387ad697f35b96cb50a6817ccb179c61b2f0c
Contents?: true
Size: 1.26 KB
Versions: 20
Compression:
Stored size: 1.26 KB
Contents
# frozen_string_literal: true class Avo::Fields::BelongsToField::EditComponent < Avo::Fields::EditComponent def initialize(field: nil, resource: nil, index: 0, form: nil, displayed_in_modal: false) super field: field, resource: resource, index: index, form: form, displayed_in_modal: displayed_in_modal @polymorphic_record = nil end def disabled return true if @field.readonly return true if @field.target_resource.present? && @field.target_resource.model_class.name == params[:via_resource_class] return true if @field.id.to_s == params[:via_relation].to_s false end def is_polymorphic? @field.types.present? end def has_polymorphic_association? polymorphic_class.present? && polymorphic_id.present? end # Get the polymorphic class def polymorphic_class @resource.model["#{@field.foreign_key}_type"] end # Get the polymorphic id def polymorphic_id @resource.model["#{@field.foreign_key}_id"] end # Get the actual resource def polymorphic_record return unless has_polymorphic_association? return unless is_polymorphic? return @polymorphic_record if @polymorphic_record.present? @polymorphic_record = polymorphic_class.safe_constantize.find polymorphic_id @polymorphic_record end end
Version data entries
20 entries across 20 versions & 1 rubygems