class Administrate::Field::Polymorphic

Public Class Methods

permitted_attribute(attr, _options = nil) click to toggle source
# File lib/administrate/field/polymorphic.rb, line 6
def self.permitted_attribute(attr, _options = nil)
  { attr => %i{type value} }
end

Public Instance Methods

associated_resource_grouped_options() click to toggle source
# File lib/administrate/field/polymorphic.rb, line 10
def associated_resource_grouped_options
  classes.map do |klass|
    [klass.to_s, candidate_resources_for(klass).map do |resource|
      [display_candidate_resource(resource), resource.to_global_id]
    end]
  end
end
permitted_attribute() click to toggle source
# File lib/administrate/field/polymorphic.rb, line 18
def permitted_attribute
  { attribute => %i{type value} }
end
selected_global_id() click to toggle source
# File lib/administrate/field/polymorphic.rb, line 22
def selected_global_id
  data ? data.to_global_id : nil
end

Protected Instance Methods

associated_dashboard(klass = data.class) click to toggle source
# File lib/administrate/field/polymorphic.rb, line 28
def associated_dashboard(klass = data.class)
  "#{klass.name}Dashboard".constantize.new
end
classes() click to toggle source
# File lib/administrate/field/polymorphic.rb, line 32
def classes
  options.fetch(:classes, [])
end

Private Instance Methods

candidate_resources_for(klass) click to toggle source
# File lib/administrate/field/polymorphic.rb, line 42
def candidate_resources_for(klass)
  order ? klass.order(order) : klass.all
end
display_candidate_resource(resource) click to toggle source
# File lib/administrate/field/polymorphic.rb, line 46
def display_candidate_resource(resource)
  associated_dashboard(resource.class).display_resource(resource)
end
order() click to toggle source
# File lib/administrate/field/polymorphic.rb, line 38
def order
  @_order ||= options.delete(:order)
end