Ruby on Rails Sunday, November 1, 2015

Figured this out for nbow... You can do something like...


        model_class = create_arec @table do
            validates_presence_of :summary_reviews
          end

  model = Object.const_set(@table.classify, model_class)
  def create_arec(table_name, &block)
        klass = Class.new(ActiveRecord::Base){self.table_name = table_name}
        klass.class_eval &block
        klass
      end

      def create_acntl(controller_name, super_class = ApplicationController, &block)
        klass = Class.new(super_class)
        klass.class_eval &block
        klass
      end

      def compose_controller(klass, &block)
        klass.class_eval &block
      end


THis will create the objects... still have not got it doing exactly what I want to.


More later perhaps!

hope this helps someone.
--mark



On Friday, October 30, 2015 at 12:14:12 PM UTC-4, mark wrote:
Hi,

I am trying to create a design for user defined tables which could be stored in a database then initialized from a controller as needed. At present I am having a bit of trouble getting these metamodels into the rails env from a controller. Is there a way that I can class_eval a model that would be able to be seen for the duration of that process?

class Admin::UdtManagersController < Admin::Auth #< ApplicationController
  before_filter :initialize_meta_environment

  def index # rails complains if this isn't here
  end

    private

      def initialize_meta_environment
        @table = 'review_processes' #define this hard coded for now... later passed via param
        @model = @table.classify

        init_models
  

      end

      def init_models
        class_eval= %q{
           class #{@model} < ActiveRecord::Base

           validates_presence_of :summary_reviews
           end
          }

       ## How can I eval this model so it will become part of my application for that process?
 
      end
end

Any help is totally appreciated! Thanks in advance.

-Mark

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/3b04bec0-f962-4ae5-989c-28662cdf2956%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment