Sha256: b82f5ab433c859d52aa7d45c0431352f19408c2ea7e157feb727f98d74ae960a

Contents?: true

Size: 847 Bytes

Versions: 1

Compression:

Stored size: 847 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,
        columns: resource_klass.columns.map { |column| { name: column.name, type: column.sql_type.parameterize.underscore } }
      }
    end

    private

      def load_models
        Rails.application.eager_load!
      end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simpleadmin-1.2.1 app/controllers/simple_admin/entities_controller.rb