class CmAdmin::ResourceController

def cm_custom_method(params)

def cm_custom_method(params)
  scoped_model = "CmAdmin::#{@model.name}Policy::Scope".constantize.new(Current.user, @model.name.constantize).resolve
  resource_identifier
  respond_to do |format|
    if @action.action_type == :custom
      if @action.child_records
        if request.xhr?
          format.html { render partial: '/cm_admin/main/associated_table' }
        else
          format.html { render @action.layout }
        end
      elsif @action.display_type == :page
        data = @action.parent == "index" ? @ar_object.data : @ar_object
        format.html { render @action.partial }
      else
        ar_object = @action.code_block.call(@ar_object)
        if ar_object.errors.empty?
          redirect_url = @model.current_action.redirection_url || @action.redirection_url || request.referrer || "/cm_admin/#{@model.ar_model.table_name}/#{@ar_object.id}"
          format.html { redirect_to redirect_url, notice: "#{@action.name.titleize} is successful" }
        else
          error_messages = ar_object.errors.full_messages.map{|error_message| "<li>#{error_message}</li>"}.join
          format.html { redirect_to request.referrer, alert: "<b>#{@action.name.titleize} is unsuccessful</b><br /><ul>#{error_messages}</ul>" }
        end
      end
    end
  end
end