Sha256: 37094fa9b2da1492144d0388b2f7e9edaf2b3c5b6399d17070f2184a3241eb14

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module EIVO
  module Concerns
    module Resource
      extend ::ActiveSupport::Concern

      def show
        @object ||= collection
      end

      def new
        @object ||= collection.new
      end

      def create
        @object ||= collection.new
        @object.assign_attributes(object_params_create)

        if @object.save
          render :new
        else
          redirect_to action: :index
        end
      end

      def edit
        @object ||= collection
      end

      def update
        @object ||= collection
        @object.assign_attributes(object_params_update)

        if @object.save
          render :edit
        else
          redirect_to action: :index
        end
      end

      def destroy
        @object ||= collection

        @object.destroy
        redirect_to action: :index
      end

    protected
      
      def collection
        raise NotImplementedError
      end

      def object_params
        raise NotImplementedError
      end

      def object_params_create
        object_params
      end

      def object_params_update
        object_params
      end
    
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eivo-rails-0.0.4 app/controllers/eivo/concerns/resource.rb