From: Artem Voroztsov Date: 2008-10-19T17:27:56+09:00 Subject: Re: Using a result as a constant object? 2008/10/19 Tim Hunter : > Phy Prabab wrote: >> >> Hello, >> >> I am trying to understand how I can use a return from a method as a >> constant name for a class. What I am trying to do is take a return I find >> in a db table and use that name as a class name so that I can use >> activerecord. I admit my understanding of ActiveRecord is extremely >> immature so perhaps I am using it wrong. >> ... >> perMatrtix = subMatrix.find[:space].to.upcase >> >> class perMatrix < ActiveRecord::Base; end >> >> blah, blah, blah... >> >> So the return of the find, which is a name (turn to upper) as the name of >> a class so that I can access that table within the database. >> > > If you're getting the class name at run-time how would you write code that > uses class after you've created it? I mean, you can't type the class name > into your program now, you don't know what it is? > > I suspect that what you really want to do is simply create a class and > assign the result to a variable. Check out Class.new. > > my_class = Class.new(ActiveRecord::Base) > my_inst = my_class.new > > > > > -- > RMagick: http://rmagick.rubyforge.org/ > > my_class = Class.new(ActiveRecord::Base) { set_table_name subMatrix.find[:space].underscore.pluralize } my_inst = my_class.new Artem PS: Expression "subMatrix.find[:space]" seems strange for me. What is it about?