class ActiveAdmin::Resource


by calling the #active_admin_config method.
The instance of the current resource is available in ResourceController and views
a new Resource instance within the given Namespace.
When you register a resource (ActiveAdmin.register Post) you are actually creating
Resource is the primary data storage for resource configuration in Active Admin

def association_columns

def association_columns
  @association_columns ||= resource_attributes.select { |key, value| key != value }.values
end

def belongs_to(target, options = {})

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

def belongs_to?

Do we belong to another resource?
def belongs_to?
  !!belongs_to_config
end

def belongs_to_config

def belongs_to_config
  @belongs_to
end

def belongs_to_param

def belongs_to_param
  if belongs_to? && belongs_to_config.required?
    belongs_to_config.to_param
  end
end

def breadcrumb

def breadcrumb
  instance_variable_defined?(:@breadcrumb) ? @breadcrumb : namespace.breadcrumb
end

def clear_collection_actions!

def clear_collection_actions!
  @collection_actions = []
end

def clear_member_actions!

Clears all the member actions this resource knows about
def clear_member_actions!
  @member_actions = []
end

def content_columns

def content_columns
  @content_columns ||= resource_attributes.select { |key, value| key == value }.values
end

def create_another

def create_another
  instance_variable_defined?(:@create_another) ? @create_another : namespace.create_another
end

def csv_builder

The csv builder for this resource
def csv_builder
  @csv_builder || default_csv_builder
end

def decorator_class

def decorator_class
  decorator_class_name&.constantize
end

def default_csv_builder

def default_csv_builder
  @default_csv_builder ||= CSVBuilder.default_for_resource(self)
end

def define_resource_name_extension(resource)

def define_resource_name_extension(resource)
  Module.new do
    define_method :model_name do
      resource.resource_name
    end
  end
end

def defined_actions

Return only defined resource actions
def defined_actions
  controller.instance_methods.map(&:to_sym) & ResourceController::ACTIVE_ADMIN_ACTIONS
end

def find_resource(id)

def find_resource(id)
  resource = resource_class.public_send *method_for_find(id)
  (decorator_class && resource) ? decorator_class.new(resource) : resource
end

def method_for_find(id)

def method_for_find(id)
  if finder = resources_configuration[:self][:finder]
    [finder, id]
  else
    [:find_by, { resource_class.primary_key => id }]
  end
end

def order_clause

def order_clause
  @order_clause || namespace.order_clause
end

def resource_attributes

def resource_attributes
  @resource_attributes ||= default_attributes
end

def resource_class

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

def resource_column_names

def resource_column_names
  resource_class.column_names
end

def resource_columns

def resource_columns
  resource_attributes.values
end

def resource_name_extension

def resource_name_extension
  @resource_name_extension ||= define_resource_name_extension(self)
end

def resource_quoted_column_name(column)

def resource_quoted_column_name(column)
  resource_class.connection.quote_column_name(column)
end

def resource_table_name

def resource_table_name
  resource_class.quoted_table_name
end

def sort_order

def sort_order
  @sort_order ||= (resource_class.respond_to?(:primary_key) ? resource_class.primary_key.to_s : "id") + "_desc"
end