Sha256: a15be5c07c8f2dabe4ad8672ea3c8dd00d6b3ea64e57979d259a54308670730f

Contents?: true

Size: 1.66 KB

Versions: 4

Compression:

Stored size: 1.66 KB

Contents

require_dependency 'guts/application_controller'

module Guts
  # Types controller
  class TypesController < ApplicationController
    include ControllerPermissionConcern

    before_action :set_type, only: [:show, :edit, :update, :destroy]
    load_and_authorize_resource

    # Display a list of types
    def index
      @types = Type.all
    end

    # Show details about a single type
    def show
    end

    # Creation of a type
    def new
      @type = Type.new
    end

    # Editing of a type
    def edit
    end

    # Creates a type through post
    # @note Redirects to #index if successfull or re-renders #new if not
    def create
      @type = Type.new type_params

      if @type.save
        flash[:notice] = 'Type was successfully created.'
        redirect_to edit_type_path(@type)
      else
        render :new
      end
    end

    # Updates a type through patch
    # @note Redirects to #index if successfull or re-renders #edit if not
    def update
      if @type.update type_params
        flash[:notice] = 'Type was successfully updated.'
        redirect_to edit_type_path(@type)
      else
        render :edit
      end
    end

    # Destroys a single type
    # @note Redirects to #index on success
    def destroy
      @type.destroy

      flash[:notice] = 'Type was successfully destroyed.'
      redirect_to types_path
    end

    private

    # Sets a type from the database using `id` param
    # @note This is a `before_action` callback
    # @private
    def set_type
      @type = Type.find params[:id]
    end

    # Permits type params from forms
    # @private
    def type_params
      params.require(:type).permit(:title, :site_id)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
guts-2.1.0 app/controllers/guts/types_controller.rb
guts-2.0.2 app/controllers/guts/types_controller.rb
guts-2.0.1 app/controllers/guts/types_controller.rb
guts-2.0.0 app/controllers/guts/types_controller.rb