Module: ActiveAdmin::ViewHelpers::AutoLinkHelper

Included in:
ActiveAdmin::ViewHelpers
Defined in:
lib/active_admin/view_helpers/auto_link_helper.rb

Instance Method Summary collapse

Instance Method Details

#active_admin_resource_for(klass) ⇒ Object

Returns the ActiveAdmin::Resource instance for a class


37
38
39
40
41
# File 'lib/active_admin/view_helpers/auto_link_helper.rb', line 37

def active_admin_resource_for(klass)
  if respond_to? :active_admin_namespace
    active_admin_namespace.resource_for klass
  end
end

Automatically links objects to their resource controllers. If the resource has not been registered, a string representation of the object is returned.

The default content in the link is returned from ActiveAdmin::ViewHelpers::DisplayHelper#display_name

You can pass in the content to display

eg: auto_link(@post, "My Link")

14
15
16
17
18
19
20
# File 'lib/active_admin/view_helpers/auto_link_helper.rb', line 14

def auto_link(resource, content = display_name(resource))
  if url = auto_url_for(resource)
    link_to content, url
  else
    content
  end
end

#auto_url_for(resource) ⇒ Object

Like `auto_link`, except that it only returns a URL instead of a full <a> tag


23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/active_admin/view_helpers/auto_link_helper.rb', line 23

def auto_url_for(resource)
  config = active_admin_resource_for(resource.class)
  return unless config

  if config.controller.action_methods.include?("show") &&
    authorized?(ActiveAdmin::Auth::READ, resource)
    url_for config.route_instance_path resource
  elsif config.controller.action_methods.include?("edit") &&
    authorized?(ActiveAdmin::Auth::UPDATE, resource)
    url_for config.route_edit_instance_path resource
  end
end