Sha256: 737d368f0052f9c18af0e24c6c2ad1b7257b2bcb27e7860efa60e220995ba35a

Contents?: true

Size: 916 Bytes

Versions: 1

Compression:

Stored size: 916 Bytes

Contents

module ModelMirror
  # Get datas for views
  class MirrorController < ApplicationController
    before_filter do
      Rails.application.eager_load! if Rails.env.development?
    end

    def index
      @models = ActiveRecord::Base.descendants
    end

    def show
      @row = model_instance
      @model_children = model_children
    end

    def list
      @rows = model_class.all
    end

    private

    def model_children
      return unless model_association
      # ensure an Array is returned in cases
      # of belongs_to/has_one associations
      Array model_instance.send(params[:relation])
    end

    def model_association
      model_class.reflect_on_association(params[:relation])
    end

    def model_class
      params[:model_path].classify.constantize
    end
    helper_method :model_class

    def model_instance
      @model_instance ||= model_class.find(params[:id])
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
model_mirror-0.1.0 app/controllers/model_mirror/mirror_controller.rb