Sha256: 0b288fcdde969317d01421ddc83ab4744aa84649ba3abe39da25cfc78d5191bf
Contents?: true
Size: 1.81 KB
Versions: 2
Compression:
Stored size: 1.81 KB
Contents
module HyperAdmin class ResourceController < ApplicationController before_action :set_resource_class before_action :permit_params, only: [ :create, :update ] before_action :set_layout, only: [ :index, :show, :new, :edit ] def index @resources = resource_class.all render 'admin/resources/index' end def show @resource = resource render 'admin/resources/show' end def new @resource = resource_class.new @attributes = @resource.attributes.delete_if do |k, v| k.to_sym.in? [ :id, :created_at, :updated_at ] end render 'admin/resources/new' end def edit @resource = resource @attributes = @resource.attributes.delete_if do |k, v| k.to_sym.in? [ :id, :created_at, :updated_at ] end render 'admin/resources/edit' end def create @resource = @resource_class.new params[@resource_class.model_name.param_key] if @resource.save render json: @resource else render json: @resource.errors, status: 422 end end def update @resource = @resource_class.find params[:id] if @resource.update params[@resource_class.model_name.param_key] render json: @resource else render json: @resource.errors, status: 422 end end def destroy @resource = @resource_class.find params[:id] @resource.destroy head 200 end def resource resource_class.find params[:id] end def resource_class raise "This method must be overridden" end protected def set_layout self.class.layout ->{ request.xhr? ? false : 'hyper_admin/application' } end def set_resource_class @resource_class = resource_class end def permit_params params.permit! end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hyper_admin-0.4.0 | app/controllers/hyper_admin/resource_controller.rb |
hyper_admin-0.3.0 | app/controllers/hyper_admin/resource_controller.rb |