Class: ActiveAdmin::Resource

Inherits:
Object
  • Object
show all
Includes:
Authorization, ActionItems, Attributes, Base, Controllers, Includes, Menu, Naming, Ordering, PagePresenters, Pagination, Routes, ScopeTo, Scopes, Sidebars, MethodOrProcHelper
Defined in:
lib/active_admin/resource.rb,
lib/active_admin/resource/menu.rb,
lib/active_admin/resource/naming.rb,
lib/active_admin/resource/routes.rb,
lib/active_admin/resource/scopes.rb,
lib/active_admin/resource/includes.rb,
lib/active_admin/resource/ordering.rb,
lib/active_admin/resource/scope_to.rb,
lib/active_admin/resource/sidebars.rb,
lib/active_admin/resource/attributes.rb,
lib/active_admin/resource/belongs_to.rb,
lib/active_admin/resource/pagination.rb,
lib/active_admin/resource/controllers.rb,
lib/active_admin/resource/action_items.rb,
lib/active_admin/resource/page_presenters.rb

Overview

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.

Defined Under Namespace

Modules: ActionItems, Attributes, Base, Controllers, Includes, Menu, Naming, Ordering, PagePresenters, Pagination, Routes, ScopeTo, Scopes, Sidebars Classes: BelongsTo, Name

Constant Summary collapse

RegisterEvent =

Event dispatched when a new resource is registered

'active_admin.resource.register'.freeze

Constants included from Authorization

Authorization::CREATE, Authorization::DESTROY, Authorization::READ, Authorization::UPDATE

Instance Attribute Summary collapse

Attributes included from Pagination

#max_per_page, #paginate, #per_page

Attributes included from Menu

#menu_item

Instance Method Summary collapse

Methods included from Attributes

#counter_cache_col?, #default_attributes, #filtered_col?, #foreign_methods, #method_for_column, #primary_col?, #reject_col?, #sti_col?

Methods included from Ordering

#ordering

Methods included from Routes

#route_batch_action_path, #route_builder, #route_collection_path, #route_edit_instance_path, #route_instance_path, #route_prefix, #route_uncountable?

Methods included from Sidebars

#add_sidebar_section, #clear_sidebar_sections!, #sidebar_sections, #sidebar_sections?, #sidebar_sections_for

Methods included from ScopeTo

#scope_to, #scope_to?, #scope_to_association_method, #scope_to_config, #scope_to_method

Methods included from Includes

#includes

Methods included from Scopes

#default_scope, #get_scope_by_id, #scope, #scopes

Methods included from Pagination

#initialize

Methods included from PagePresenters

#default_index_class, #find_index_class, #get_page_presenter, #page_presenters, #set_index_presenter, #set_page_options, #set_page_presenter

Methods included from Naming

#param_key, #plural_resource_label, #resource_label, #resource_name

Methods included from Menu

#add_to_menu, #default_menu_options, #include_in_menu?, #menu_item_options, #menu_item_options=, #navigation_menu, #navigation_menu_name, #navigation_menu_name=

Methods included from Controllers

#controller, #controller_name

Methods included from ActionItems

#action_items, #action_items?, #action_items_for, #add_action_item, #clear_action_items!, #initialize, #remove_action_item

Methods included from Base

#initialize

Methods included from MethodOrProcHelper

#call_method_or_exec_proc, #call_method_or_proc_on, #render_in_context, #render_or_call_method_or_proc_on

Instance Attribute Details



167
168
169
# File 'lib/active_admin/resource.rb', line 167

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

#collection_actionsObject (readonly)

An array of collection actions defined for this resource



44
45
46
# File 'lib/active_admin/resource.rb', line 44

def collection_actions
  @collection_actions
end

#create_anotherObject



175
176
177
# File 'lib/active_admin/resource.rb', line 175

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

#csv_builderObject

The csv builder for this resource



163
164
165
# File 'lib/active_admin/resource.rb', line 163

def csv_builder
  @csv_builder || default_csv_builder
end

#decorator_class_nameObject

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



72
73
74
# File 'lib/active_admin/resource.rb', line 72

def decorator_class_name
  @decorator_class_name
end

#dslObject

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



68
69
70
# File 'lib/active_admin/resource.rb', line 68

def dsl
  @dsl
end

#member_actionsObject (readonly)

An array of member actions defined for this resource



38
39
40
# File 'lib/active_admin/resource.rb', line 38

def member_actions
  @member_actions
end

#namespaceObject (readonly)

The namespace this config belongs to



32
33
34
# File 'lib/active_admin/resource.rb', line 32

def namespace
  @namespace
end

#order_clauseObject



171
172
173
# File 'lib/active_admin/resource.rb', line 171

def order_clause
  @order_clause || namespace.order_clause
end

#permitted_attr_namesObject

An array or proc returning whitelisted resource attribute names.



75
76
77
# File 'lib/active_admin/resource.rb', line 75

def permitted_attr_names
  @permitted_attr_names
end

#resource_class_nameObject (readonly)

The name of the resource class



35
36
37
# File 'lib/active_admin/resource.rb', line 35

def resource_class_name
  @resource_class_name
end

#sort_orderObject



51
52
53
# File 'lib/active_admin/resource.rb', line 51

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

Instance Method Details

#add_collection_route(name, options) ⇒ Object



45
46
47
# File 'lib/active_admin/resource.rb', line 45

def add_collection_route(name, options)
  collection_actions << ControllerAction.new(name, options)
end

#add_member_route(name, options) ⇒ Object



39
40
41
# File 'lib/active_admin/resource.rb', line 39

def add_member_route(name, options)
  member_actions << ControllerAction.new(name, options)
end

#association_columnsObject



192
193
194
# File 'lib/active_admin/resource.rb', line 192

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

#belongs_to(target, options = {}) ⇒ Object



141
142
143
144
145
# File 'lib/active_admin/resource.rb', line 141

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

#belongs_to?Boolean

Do we belong to another resource?

Returns:

  • (Boolean)


158
159
160
# File 'lib/active_admin/resource.rb', line 158

def belongs_to?
  !!belongs_to_config
end

#belongs_to_configObject



147
148
149
# File 'lib/active_admin/resource.rb', line 147

def belongs_to_config
  @belongs_to
end

#belongs_to_paramObject



151
152
153
154
155
# File 'lib/active_admin/resource.rb', line 151

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

#clear_collection_actions!Object



132
133
134
# File 'lib/active_admin/resource.rb', line 132

def clear_collection_actions!
  @collection_actions = []
end

#clear_member_actions!Object

Clears all the member actions this resource knows about



128
129
130
# File 'lib/active_admin/resource.rb', line 128

def clear_member_actions!
  @member_actions = []
end

#content_columnsObject



196
197
198
# File 'lib/active_admin/resource.rb', line 196

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

#decorator_classObject



111
112
113
# File 'lib/active_admin/resource.rb', line 111

def decorator_class
  decorator_class_name&.constantize
end

#defined_actionsObject

Return only defined resource actions



137
138
139
# File 'lib/active_admin/resource.rb', line 137

def defined_actions
  controller.instance_methods.map(&:to_sym) & ResourceController::ACTIVE_ADMIN_ACTIONS
end

#find_resource(id) ⇒ Object



179
180
181
182
# File 'lib/active_admin/resource.rb', line 179

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

#resource_attributesObject



188
189
190
# File 'lib/active_admin/resource.rb', line 188

def resource_attributes
  @resource_attributes ||= default_attributes
end

#resource_classObject

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



107
108
109
# File 'lib/active_admin/resource.rb', line 107

def resource_class
  resource_class_name.constantize
end

#resource_column_namesObject



119
120
121
# File 'lib/active_admin/resource.rb', line 119

def resource_column_names
  resource_class.column_names
end

#resource_columnsObject



184
185
186
# File 'lib/active_admin/resource.rb', line 184

def resource_columns
  resource_attributes.values
end

#resource_quoted_column_name(column) ⇒ Object



123
124
125
# File 'lib/active_admin/resource.rb', line 123

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

#resource_table_nameObject



115
116
117
# File 'lib/active_admin/resource.rb', line 115

def resource_table_name
  resource_class.quoted_table_name
end