app/controllers/administrate/application_controller.rb in administrate-0.0.9 vs app/controllers/administrate/application_controller.rb in administrate-0.0.10
- old
+ new
@@ -1,30 +1,32 @@
module Administrate
class ApplicationController < ActionController::Base
def index
- @resources = resource_class.all
+ @resources = resolver.resource_class.all
@page = Administrate::Page::Table.new(dashboard)
end
def show
set_resource
@page = Administrate::Page::Show.new(dashboard, resource)
end
def new
- @page = Administrate::Page::Form.new(dashboard, resource_class.new)
+ @page = Administrate::Page::Form.new(
+ dashboard, resolver.resource_class.new
+ )
end
def edit
set_resource
@page = Administrate::Page::Form.new(dashboard, resource)
end
def create
- set_resource(resource_class.new(resource_params))
+ set_resource(resolver.resource_class.new(resource_params))
if resource.save
redirect_to(
[Administrate::NAMESPACE, resource],
notice: translate("create.success"),
@@ -59,52 +61,57 @@
private
helper_method :nav_link_state
def nav_link_state(resource)
- if resource_name.to_s.pluralize == resource.to_s
+ if resolver.resource_name.to_s.pluralize == resource.to_s
:active
else
:inactive
end
end
def dashboard
- @dashboard ||= resource_resolver.dashboard_class.new
+ @dashboard ||= resolver.dashboard_class.new
end
def set_resource(resource = nil)
- resource ||= resource_class.find(params[:id])
+ resource ||= find_resource(params[:id])
instance_variable_set(instance_variable, resource)
end
+ def find_resource(param)
+ resolver.resource_class.find(param)
+ end
+
def resource
instance_variable_get(instance_variable)
end
def resource_params
- params.require(resource_name).permit(*permitted_attributes)
+ params.require(resolver.resource_name).permit(*permitted_attributes)
end
def permitted_attributes
dashboard.permitted_attributes
end
def instance_variable
- "@#{resource_name}"
+ "@#{resolver.resource_name}"
end
- delegate :resource_class, :resource_name, to: :resource_resolver
+ def resolver
+ @resolver ||= Administrate::ResourceResolver.new(resource_class)
+ end
- def resource_resolver
- @resource_resolver ||=
- Administrate::ResourceResolver.new(controller_path)
+ def resource_class
+ params.fetch(:resource_class, controller_path).to_s
end
def translate(key)
t(
"administrate.controller.#{key}",
- resource: resource_resolver.resource_title,
+ resource: resolver.resource_title,
)
end
end
end