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
An array of collection actions defined for this resource
Display create another checkbox on a new page @return [Boolean]
Set the configuration for the CSV
The string identifying a class to decorate our resource with for the view. nil to not decorate.
An array of member actions defined for this resource
The namespace this config belongs to
Set order clause
The name of the resource class
The default sort order to use in the controller
Public Instance Methods
Source
# File lib/active_admin/resource.rb, line 191 def association_columns @association_columns ||= resource_attributes.select { |key, value| key != value }.values end
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
Source
# File lib/active_admin/resource.rb, line 157 def belongs_to? !!belongs_to_config end
Do we belong to another resource?
Source
# File lib/active_admin/resource.rb, line 146 def belongs_to_config @belongs_to end
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
Source
# File lib/active_admin/resource.rb, line 130 def clear_collection_actions! @collection_actions = [] end
Source
# File lib/active_admin/resource.rb, line 126 def clear_member_actions! @member_actions = [] end
Clears all the member actions this resource knows about
Source
# File lib/active_admin/resource.rb, line 195 def content_columns @content_columns ||= resource_attributes.select { |key, value| key == value }.values end
Source
# File lib/active_admin/resource.rb, line 174 def create_another instance_variable_defined?(:@create_another) ? @create_another : namespace.create_another end
Source
# File lib/active_admin/resource.rb, line 162 def csv_builder @csv_builder || default_csv_builder end
The csv builder for this resource
Source
# File lib/active_admin/resource.rb, line 105 def decorator_class decorator_class_name&.constantize end
Source
# File lib/active_admin/resource.rb, line 135 def defined_actions controller.instance_methods.map(&:to_sym) & ResourceController::ACTIVE_ADMIN_ACTIONS end
Return only defined resource actions
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
Source
# File lib/active_admin/resource.rb, line 170 def order_clause @order_clause || namespace.order_clause end
Source
# File lib/active_admin/resource.rb, line 187 def resource_attributes @resource_attributes ||= default_attributes end
Source
# File lib/active_admin/resource.rb, line 101 def resource_class resource_class_name.constantize end
The class this resource wraps. If you register the Post model, Resource#resource_class
will point to the Post class
Source
# File lib/active_admin/resource.rb, line 117 def resource_column_names resource_class.column_names end
Source
# File lib/active_admin/resource.rb, line 183 def resource_columns resource_attributes.values end
Source
# File lib/active_admin/resource.rb, line 109 def resource_name_extension @resource_name_extension ||= define_resource_name_extension(self) end
Source
# File lib/active_admin/resource.rb, line 121 def resource_quoted_column_name(column) resource_class.connection.quote_column_name(column) end
Source
# File lib/active_admin/resource.rb, line 113 def resource_table_name resource_class.quoted_table_name end
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
Source
# File lib/active_admin/resource.rb, line 209 def default_csv_builder @default_csv_builder ||= CSVBuilder.default_for_resource(self) end
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
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