module Godmin::Resources::ResourceController
Public Instance Methods
create()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 44 def create respond_to do |format| if @resource_service.create_resource(@resource) format.html { redirect_to redirect_after_create, notice: redirect_flash_message } format.json { render :show, status: :created, location: @resource } else format.html { render :edit } format.json { render json: @resource.errors, status: :unprocessable_entity } end end end
destroy()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 68 def destroy @resource_service.destroy_resource(@resource) respond_to do |format| format.html { redirect_to redirect_after_destroy, notice: redirect_flash_message } format.json { head :no_content } end end
edit()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 42 def edit; end
index()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 25 def index respond_to do |format| format.html format.json format.csv end end
new()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 40 def new; end
show()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 33 def show respond_to do |format| format.html format.json end end
update()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 56 def update respond_to do |format| if @resource_service.update_resource(@resource, resource_params) format.html { redirect_to redirect_after_update, notice: redirect_flash_message } format.json { render :show, status: :ok, location: @resource } else format.html { render :edit } format.json { render json: @resource.errors, status: :unprocessable_entity } end end end
Protected Instance Methods
redirect_after_create()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 164 def redirect_after_create redirect_after_save end
redirect_after_destroy()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 176 def redirect_after_destroy [*@resource_parents, resource_class.model_name.route_key.to_sym] end
redirect_after_save()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 172 def redirect_after_save [*@resource_parents, @resource] end
redirect_after_update()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 168 def redirect_after_update redirect_after_save end
redirect_flash_message()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 180 def redirect_flash_message translate_scoped("flash.#{action_name}", resource: @resource.class.model_name.human) end
resource()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 135 def resource if params[:id] @resource_service.find_resource(params[:id]) else case action_name when "create" @resource_service.build_resource(resource_params) when "new" @resource_service.build_resource(nil) end end end
resource_class()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 119 def resource_class @resource_service.resource_class end
resource_params()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 148 def resource_params params.require(@resource_class.model_name.param_key.to_sym).permit(resource_params_defaults) end
resource_params_defaults()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 152 def resource_params_defaults @resource_service.attrs_for_form.map do |attribute| association = @resource_class.reflect_on_association(attribute) if association && association.macro == :belongs_to association.foreign_key.to_sym else attribute end end end
resource_parents()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 123 def resource_parents params.to_unsafe_h.each_with_object([]) do |(name, value), parents| if name =~ /(.+)_id$/ parents << $1.classify.constantize.find(value) end end end
resource_service()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 105 def resource_service resource_service = resource_service_class.new if authentication_enabled? resource_service.options[:admin_user] = admin_user end if resource_parents.present? resource_service.options[:resource_parent] = resource_parents.last end resource_service end
resource_service_class()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 101 def resource_service_class "#{controller_path.singularize}_service".classify.constantize end
resources()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 131 def resources @resource_service.resources(params) end
set_resource()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 96 def set_resource @resource = resource authorize(@resource) if authorization_enabled? end
set_resource_class()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 83 def set_resource_class @resource_class = resource_class end
set_resource_parents()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 87 def set_resource_parents @resource_parents = resource_parents end
set_resource_service()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 79 def set_resource_service @resource_service = resource_service end
set_resources()
click to toggle source
# File lib/godmin/resources/resource_controller.rb, line 91 def set_resources @resources = resources authorize(@resources) if authorization_enabled? end