Sha256: e595a1211bf2f29d999870794ae63626a2f84d282dbfb53ad25e22d5fbff252c

Contents?: true

Size: 887 Bytes

Versions: 2

Compression:

Stored size: 887 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].constantize

      render json: {
        name: resource_klass.name,
        column_names: resource_klass.column_names,
        columns: resource_klass.columns.map { |column| { name: column.name, type: column.sql_type.parameterize.underscore } },
        reflections: resource_klass.reflections.keys
      }
    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.7 app/controllers/simple_admin/entities_controller.rb
simpleadmin-1.2.6 app/controllers/simple_admin/entities_controller.rb