From: Shak Shak Date: 2009-05-13T07:07:07+09:00 Subject: Calling methons in subclass on extend In Rails, the Tableless plugin allows you to define tableless models: class A < ActiveRecord::Base include Mod tableless :columns => [[:id, :int]] column :name, :string end I'm not clear what you call these methods being called in class definition. Static constructor calls perhaps? Anyway, let's say I want a new model as A, but with an extra column: class B < A column :desc, :string end How do I get the process of inheriting from A call the same static methods as in A's definition? I tried something like this: class A < ActiveRecord::Base def A.setup(clazz) clazz.class_eval{include Mod} clazz.tableless :columns => [[:id, :int]] clazz.column :name, :string end def A.inherited(clazz) setup(clazz) end setup(A) end But this doesn't seem to work - A seems to work as before, but B cannot be new'd for some reason (can't dup NilClass). Any suggestions on how to get this working as intended? Although I'm using this in Rails, I assume that this is a general Ruby meta programming question, but apologies if I've placed it in the wrong forum. Shak -- Posted via http://www.ruby-forum.com/.