class ActiveAdmin::Resource

Resource is the primary data storage for resource configuration in Active Admin

When you register a resource (ActiveAdmin.register Post) you are actually creating a new Resource instance within the given Namespace.

The instance of the current resource is available in ResourceController and views by calling the active_admin_config method.

Constants

RegisterEvent

Event dispatched when a new resource is registered

Attributes

breadcrumb[W]

Set breadcrumb builder

collection_actions[R]

An array of collection actions defined for this resource

create_another[W]

Display create another checkbox on a new page @return [Boolean]

csv_builder[W]

Set the configuration for the CSV

decorator_class_name[RW]

The string identifying a class to decorate our resource with for the view. nil to not decorate.

dsl[RW]

Store a reference to the DSL so that we can dereference it during garbage collection.

member_actions[R]

An array of member actions defined for this resource

namespace[R]

The namespace this config belongs to

order_clause[W]

Set order clause

resource_class_name[R]

The name of the resource class

sort_order[W]

The default sort order to use in the controller

Public Instance Methods

association_columns() click to toggle source
# File lib/active_admin/resource.rb, line 191
def association_columns
  @association_columns ||= resource_attributes.select { |key, value| key != value }.values
end
belongs_to(target, options = {}) click to toggle source
# File lib/active_admin/resource.rb, line 139
def belongs_to(target, options = {})
  @belongs_to = Resource::BelongsTo.new(self, target, options)
  self.menu_item_options = false if @belongs_to.required?
  options[:class_name] ||= @belongs_to.resource.resource_class_name if @belongs_to.resource
  controller.send :belongs_to, target, options.dup
end
belongs_to?() click to toggle source

Do we belong to another resource?

# File lib/active_admin/resource.rb, line 157
def belongs_to?
  !!belongs_to_config
end
belongs_to_config() click to toggle source
# File lib/active_admin/resource.rb, line 146
def belongs_to_config
  @belongs_to
end
belongs_to_param() click to toggle source
# File lib/active_admin/resource.rb, line 150
def belongs_to_param
  if belongs_to? && belongs_to_config.required?
    belongs_to_config.to_param
  end
end
breadcrumb() click to toggle source
clear_collection_actions!() click to toggle source
# File lib/active_admin/resource.rb, line 130
def clear_collection_actions!
  @collection_actions = []
end
clear_member_actions!() click to toggle source

Clears all the member actions this resource knows about

# File lib/active_admin/resource.rb, line 126
def clear_member_actions!
  @member_actions = []
end
content_columns() click to toggle source
# File lib/active_admin/resource.rb, line 195
def content_columns
  @content_columns ||= resource_attributes.select { |key, value| key == value }.values
end
create_another() click to toggle source
# File lib/active_admin/resource.rb, line 174
def create_another
  instance_variable_defined?(:@create_another) ? @create_another : namespace.create_another
end
csv_builder() click to toggle source

The csv builder for this resource

# File lib/active_admin/resource.rb, line 162
def csv_builder
  @csv_builder || default_csv_builder
end
decorator_class() click to toggle source
# File lib/active_admin/resource.rb, line 105
def decorator_class
  decorator_class_name&.constantize
end
defined_actions() click to toggle source

Return only defined resource actions

# File lib/active_admin/resource.rb, line 135
def defined_actions
  controller.instance_methods.map(&:to_sym) & ResourceController::ACTIVE_ADMIN_ACTIONS
end
find_resource(id) click to toggle source
# File lib/active_admin/resource.rb, line 178
def find_resource(id)
  resource = resource_class.public_send *method_for_find(id)
  (decorator_class && resource) ? decorator_class.new(resource) : resource
end
order_clause() click to toggle source
# File lib/active_admin/resource.rb, line 170
def order_clause
  @order_clause || namespace.order_clause
end
resource_attributes() click to toggle source
# File lib/active_admin/resource.rb, line 187
def resource_attributes
  @resource_attributes ||= default_attributes
end
resource_class() click to toggle source

The class this resource wraps. If you register the Post model, Resource#resource_class will point to the Post class

# File lib/active_admin/resource.rb, line 101
def resource_class
  resource_class_name.constantize
end
resource_column_names() click to toggle source
# File lib/active_admin/resource.rb, line 117
def resource_column_names
  resource_class.column_names
end
resource_columns() click to toggle source
# File lib/active_admin/resource.rb, line 183
def resource_columns
  resource_attributes.values
end
resource_name_extension() click to toggle source
# File lib/active_admin/resource.rb, line 109
def resource_name_extension
  @resource_name_extension ||= define_resource_name_extension(self)
end
resource_quoted_column_name(column) click to toggle source
# File lib/active_admin/resource.rb, line 121
def resource_quoted_column_name(column)
  resource_class.connection.quote_column_name(column)
end
resource_table_name() click to toggle source
# File lib/active_admin/resource.rb, line 113
def resource_table_name
  resource_class.quoted_table_name
end
sort_order() click to toggle source
# File lib/active_admin/resource.rb, line 47
def sort_order
  @sort_order ||= (resource_class.respond_to?(:primary_key) ? resource_class.primary_key.to_s : "id") + "_desc"
end

Private Instance Methods

default_csv_builder() click to toggle source
# File lib/active_admin/resource.rb, line 209
def default_csv_builder
  @default_csv_builder ||= CSVBuilder.default_for_resource(self)
end
define_resource_name_extension(resource) click to toggle source
# File lib/active_admin/resource.rb, line 213
def define_resource_name_extension(resource)
  Module.new do
    define_method :model_name do
      resource.resource_name
    end
  end
end
method_for_find(id) click to toggle source
# File lib/active_admin/resource.rb, line 201
def method_for_find(id)
  if finder = resources_configuration[:self][:finder]
    [finder, id]
  else
    [:find_by, { resource_class.primary_key => id }]
  end
end