Sha256: ea154b514d71cdb364510b95d55d5d540284889e546a934a4c933ff993aa024b

Contents?: true

Size: 720 Bytes

Versions: 2

Compression:

Stored size: 720 Bytes

Contents

module SimpleAdmin
  class EntitiesController < BaseController
    before_action :load_models

    def index
      models = []

      ApplicationRecord.descendants.each do |model|
        models << {
          name:    model.name,
          columns: model.columns.map { |column| { name: column.name, type: column.sql_type.parameterize.underscore } }
        }
      end

      render json: {
        models: models
      }
    end

    def show
      resource_klass = params[:id].capitalize.constantize

      render json: {
        name: resource_klass.name,
        column_names: resource_klass.column_names
      }
    end

    private

      def load_models
        Rails.application.eager_load!
      end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
simpleadmin-1.2.0 app/controllers/simple_admin/entities_controller.rb
simpleadmin-1.1.0 app/controllers/simple_admin/entities_controller.rb