module ActiveAdmin::ResourceController::PolymorphicRoutes

Public Instance Methods

polymorphic_path(record_or_hash_or_array, options = {}) click to toggle source
Calls superclass method
# File lib/active_admin/resource_controller/polymorphic_routes.rb, line 12
def polymorphic_path(record_or_hash_or_array, options = {})
  super(map_named_resources_for(record_or_hash_or_array), options)
end
polymorphic_url(record_or_hash_or_array, options = {}) click to toggle source
Calls superclass method
# File lib/active_admin/resource_controller/polymorphic_routes.rb, line 8
def polymorphic_url(record_or_hash_or_array, options = {})
  super(map_named_resources_for(record_or_hash_or_array), options)
end

Private Instance Methods

map_named_resources_for(record_or_hash_or_array) click to toggle source
# File lib/active_admin/resource_controller/polymorphic_routes.rb, line 18
def map_named_resources_for(record_or_hash_or_array)
  return record_or_hash_or_array unless record_or_hash_or_array.is_a?(Array)

  record_or_hash_or_array.map { |record| to_named_resource(record) }
end
to_named_resource(record) click to toggle source
# File lib/active_admin/resource_controller/polymorphic_routes.rb, line 24
def to_named_resource(record)
  if record.is_a?(resource_class)
    return ActiveAdmin::Model.new(active_admin_config, record)
  end

  belongs_to_resource = active_admin_config.belongs_to_config.try(:resource)
  if belongs_to_resource && record.is_a?(belongs_to_resource.resource_class)
    return ActiveAdmin::Model.new(belongs_to_resource, record)
  end

  record
end