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.
Store a reference to the DSL
so that we can dereference it during garbage collection.
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
# File lib/active_admin/resource.rb, line 183 def association_columns @association_columns ||= resource_attributes.select{ |key, value| key != value }.values end
# File lib/active_admin/resource.rb, line 132 def belongs_to(target, options = {}) @belongs_to = Resource::BelongsTo.new(self, target, options) self.menu_item_options = false if @belongs_to.required? controller.send :belongs_to, target, options.dup end
Do we belong to another resource?
# File lib/active_admin/resource.rb, line 149 def belongs_to? !!belongs_to_config end
# File lib/active_admin/resource.rb, line 138 def belongs_to_config @belongs_to end
# File lib/active_admin/resource.rb, line 142 def belongs_to_param if belongs_to? && belongs_to_config.required? belongs_to_config.to_param end end
# File lib/active_admin/resource.rb, line 123 def clear_collection_actions! @collection_actions = [] end
Clears all the member actions this resource knows about
# File lib/active_admin/resource.rb, line 119 def clear_member_actions! @member_actions = [] end
# File lib/active_admin/resource.rb, line 187 def content_columns @content_columns ||= resource_attributes.select{ |key, value| key == value }.values end
# File lib/active_admin/resource.rb, line 166 def create_another instance_variable_defined?(:@create_another) ? @create_another : namespace.create_another end
The csv builder for this resource
# File lib/active_admin/resource.rb, line 154 def csv_builder @csv_builder || default_csv_builder end
# File lib/active_admin/resource.rb, line 102 def decorator_class ActiveSupport::Dependencies.constantize(decorator_class_name) if decorator_class_name end
Return only defined resource actions
# File lib/active_admin/resource.rb, line 128 def defined_actions controller.instance_methods.map(&:to_sym) & ResourceController::ACTIVE_ADMIN_ACTIONS end
# File lib/active_admin/resource.rb, line 170 def find_resource(id) resource = resource_class.public_send *method_for_find(id) (decorator_class && resource) ? decorator_class.new(resource) : resource end
# File lib/active_admin/resource.rb, line 162 def order_clause @order_clause || namespace.order_clause end
# File lib/active_admin/resource.rb, line 179 def resource_attributes @resource_attributes ||= default_attributes end
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 98 def resource_class ActiveSupport::Dependencies.constantize(resource_class_name) end
# File lib/active_admin/resource.rb, line 110 def resource_column_names resource_class.column_names end
# File lib/active_admin/resource.rb, line 175 def resource_columns resource_attributes.values end
# File lib/active_admin/resource.rb, line 114 def resource_quoted_column_name(column) resource_class.connection.quote_column_name(column) end
# File lib/active_admin/resource.rb, line 106 def resource_table_name resource_class.quoted_table_name end
# File lib/active_admin/resource.rb, line 45 def sort_order @sort_order ||= (resource_class.respond_to?(:primary_key) ? resource_class.primary_key.to_s : 'id') + '_desc' end
Private Instance Methods
# File lib/active_admin/resource.rb, line 201 def default_csv_builder @default_csv_builder ||= CSVBuilder.default_for_resource(self) end
# File lib/active_admin/resource.rb, line 193 def method_for_find(id) if finder = resources_configuration[:self][:finder] [finder, id] else [:find_by, { resource_class.primary_key => id }] end end