app/controllers/madmin/resource_controller.rb in madmin-0.1.1 vs app/controllers/madmin/resource_controller.rb in madmin-1.0.0.beta1
- old
+ new
@@ -1,11 +1,11 @@
module Madmin
class ResourceController < ApplicationController
before_action :set_record, except: [:index, :new, :create]
def index
- @pagy, @records = pagy(resource.model.all)
+ @pagy, @records = pagy(scoped_resources)
end
def show
end
@@ -16,22 +16,22 @@
def create
@record = resource.model.new(resource_params)
if @record.save
redirect_to resource.show_path(@record)
else
- render :new
+ render :new, status: :unprocessable_entity
end
end
def edit
end
def update
if @record.update(resource_params)
redirect_to resource.show_path(@record)
else
- render :edit
+ render :edit, status: :unprocessable_entity
end
end
def destroy
@record.destroy
@@ -49,9 +49,18 @@
end
helper_method :resource
def resource_name
"#{controller_path.singularize}_resource".delete_prefix("madmin/").classify
+ end
+
+ def scoped_resources
+ resource.model.send(valid_scope)
+ end
+
+ def valid_scope
+ scope = params.fetch(:scope, "all")
+ resource.scopes.include?(scope.to_sym) ? scope : :all
end
def resource_params
params.require(resource.param_key)
.permit(*resource.permitted_params)