create rails model classes dynamically ?

A

aktxyz

Rails has a very nice database migration utility, where you can write
something like this...

class CreateHouse < ActiveRecord::Migration

def self.up
create_table :house do |t|
t.column 'person_id', :integer, :default => nil, :null => false
t.column "created_at", :datetime
t.column "name", :string, :limit => 128, :default => ""
end
end

def self.down
drop_table :place
end

end

Typically, you then create a class in the model directory that looks
like this...

class House < ActiveRecord::Base

belongs_to :person

end


I'd like to dynamicallly generate this House class. With the help of
this post, I can create the class and methods dynamically...
http://groups.google.com/group/comp...nk=gst&q=create+class&rnum=8#b8d076423378a2f2
But I have not been able to figure out how to add the belongs_to and
has_many style calls at the class level to the dynamicall generated
class. Also, once this class is initially created dynamically,
depending on what tables are created later, there may have to be
additional belongs_to and has_many calls injected into the existing
class, whew.

-- any help would be great, thanks, Andrew
 
W

William Crawford

unknown said:
I'd like to dynamicallly generate this House class. With the help of
this post, I can create the class and methods dynamically...

http://magicmodels.rubyforge.org/

I'm not into Rails yet, but I came across this the other day and tagged
it as potentially useful in the future. I suspect it's what you want.
 
V

Varun Goel

unknown said:
Rails has a very nice database migration utility, where you can write
something like this...

class CreateHouse < ActiveRecord::Migration

def self.up
create_table :house do |t|
t.column 'person_id', :integer, :default => nil, :null => false
t.column "created_at", :datetime
t.column "name", :string, :limit => 128, :default => ""
end
end

def self.down
drop_table :place
end

end

Typically, you then create a class in the model directory that looks
like this...

class House < ActiveRecord::Base

belongs_to :person

end


I'd like to dynamicallly generate this House class. With the help of
this post, I can create the class and methods dynamically...
http://groups.google.com/group/comp...nk=gst&q=create+class&rnum=8#b8d076423378a2f2
But I have not been able to figure out how to add the belongs_to and
has_many style calls at the class level to the dynamicall generated
class. Also, once this class is initially created dynamically,
depending on what tables are created later, there may have to be
additional belongs_to and has_many calls injected into the existing
class, whew.

-- any help would be great, thanks, Andrew


Hi,
U said that u r able to create class dynamically i used same link but
i m not able to create class dynamically please help me with some code
snippet.
Please help me i am facing this problem from last two weeeks??

Thanks
varun
 
S

Simon Krahnke

* Varun Goel said:
Hi,
U said that u r able to create class dynamically i used same link but
i m not able to create class dynamically please help me with some code
snippet.
Please help me i am facing this problem from last two weeeks??

You can create a class by Class.new. For example:

c = Class.new do
def moo
"moo!"
end
end

obj = c.new
puts obj.moo

mfg, simon .... l
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top