class ActiveAdmin::Resource::Routes::RouteBuilder
Attributes
resource[R]
Public Class Methods
new(resource)
click to toggle source
# File lib/active_admin/resource/routes.rb, line 47 def initialize(resource) @resource = resource end
Public Instance Methods
batch_action_path(params, additional_params = {})
click to toggle source
# File lib/active_admin/resource/routes.rb, line 60 def batch_action_path(params, additional_params = {}) route_name = route_name( resource.resources_configuration[:self][:route_collection_name], action: :batch_action, suffix: (resource.route_uncountable? ? "index_path" : "path") ) query = params.slice(:q, :scope) query = query.permit!.to_h routes.public_send route_name, *route_collection_params(params), additional_params.merge(query) end
collection_path(params, additional_params = {})
click to toggle source
# File lib/active_admin/resource/routes.rb, line 51 def collection_path(params, additional_params = {}) route_name = route_name( resource.resources_configuration[:self][:route_collection_name], suffix: (resource.route_uncountable? ? "index_path" : "path") ) routes.public_send route_name, *route_collection_params(params), additional_params end
instance_path(instance, additional_params = {})
click to toggle source
@return [String] the path to this resource collection page @param instance [ActiveRecord::Base] the instance we want the path of @example “/admin/posts/1”
# File lib/active_admin/resource/routes.rb, line 75 def instance_path(instance, additional_params = {}) route_name = route_name(resource.resources_configuration[:self][:route_instance_name]) routes.public_send route_name, *route_instance_params(instance), additional_params end
member_action_path(action, instance, additional_params = {})
click to toggle source
@return [String] the path to the member action of this resource @param action [Symbol] @param instance [ActiveRecord::Base] the instance we want the path of @example “/admin/posts/1/edit”
# File lib/active_admin/resource/routes.rb, line 85 def member_action_path(action, instance, additional_params = {}) path = resource.resources_configuration[:self][:route_instance_name] route_name = route_name(path, action: action) routes.public_send route_name, *route_instance_params(instance), additional_params end
Private Instance Methods
belongs_to_config()
click to toggle source
# File lib/active_admin/resource/routes.rb, line 136 def belongs_to_config resource.belongs_to_config end
belongs_to_name()
click to toggle source
# File lib/active_admin/resource/routes.rb, line 132 def belongs_to_name belongs_to_config.target.resource_name.singular end
belongs_to_target_name()
click to toggle source
# File lib/active_admin/resource/routes.rb, line 128 def belongs_to_target_name belongs_to_config.target_name end
nested?()
click to toggle source
# File lib/active_admin/resource/routes.rb, line 124 def nested? resource.belongs_to? && belongs_to_config.required? end
route_collection_params(params)
click to toggle source
# File lib/active_admin/resource/routes.rb, line 118 def route_collection_params(params) if nested? params[:"#{belongs_to_name}_id"] end end
route_instance_params(instance)
click to toggle source
@return params to pass to instance path
# File lib/active_admin/resource/routes.rb, line 110 def route_instance_params(instance) if nested? [instance.public_send(belongs_to_target_name).to_param, instance.to_param] else instance.to_param end end
route_name(resource_path_name, options = {})
click to toggle source
# File lib/active_admin/resource/routes.rb, line 96 def route_name(resource_path_name, options = {}) suffix = options[:suffix] || "path" route = [] route << options[:action] # "batch_action", "edit" or "new" route << resource.route_prefix # "admin" route << belongs_to_name if nested? # "category" route << resource_path_name # "posts" or "post" route << suffix # "path" or "index path" route.compact.join("_").to_sym # :admin_category_posts_path end
routes()
click to toggle source
# File lib/active_admin/resource/routes.rb, line 140 def routes Helpers::Routes end