我需要动态创建一个 Ruby 类,即动态地,它派生自ActiveRecord::Base
. 我eval
暂时使用:
eval %Q{
class ::#{klass} < ActiveRecord::Base
self.table_name = "#{table_name}"
end
}
是否有等效且至少同样简洁的方法可以在不使用的情况下执行此操作eval
?
我需要动态创建一个 Ruby 类,即动态地,它派生自ActiveRecord::Base
. 我eval
暂时使用:
eval %Q{
class ::#{klass} < ActiveRecord::Base
self.table_name = "#{table_name}"
end
}
是否有等效且至少同样简洁的方法可以在不使用的情况下执行此操作eval
?
您可以使用Class类,其中类是实例。迷茫了吗?;)
cls = Class.new(ActiveRecord::Base) do
self.table_name = table_name
end
cls.new
当然有:)
class Foo
class << self
attr_accessor :table_name
end
end
Bar = Class.new(Foo) do
self.table_name = 'bars'
end
Bar.table_name # => "bars"