class Administrate::Field::Polymorphic
Public Class Methods
permitted_attribute(attr, _options = {})
click to toggle source
# File lib/administrate/field/polymorphic.rb, line 6 def self.permitted_attribute(attr, _options = {}) { 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
Private 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
candidate_resources_for(klass)
click to toggle source
# File lib/administrate/field/polymorphic.rb, line 43 def candidate_resources_for(klass) order ? klass.order(order) : klass.all end
classes()
click to toggle source
# File lib/administrate/field/polymorphic.rb, line 32 def classes klasses = options.fetch(:classes, []) klasses.respond_to?(:call) ? klasses.call : klasses end
display_candidate_resource(resource)
click to toggle source
# File lib/administrate/field/polymorphic.rb, line 47 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 39 def order @_order ||= options.delete(:order) end