我可以创建一个ruby类的数据库吗?

时间:2015-06-25 01:34:45

标签: sql ruby mongodb

我必须创建一个具有相似结构的大量ruby类,所有这些类看起来,就像这样:

class SomeName < SomeOtherName
  def initialize
    @title = "blablabla"
    @link = "blablabla"
    @nature = "blablabla"
  end
end

是否可以以数据库(SQL或Mongo等)的形式存储类。像这样:

{:class => "SomeName", :parent => "SomeOtherName", :initialize => {"title
 = "blablabla", ... } }

当然,能够从数据库中实例化类。应该有几百个类,将它们存储在ruby文件中会太麻烦,容易更新是不可能的。我正在考虑一些替代方案,比如创建一个可以从数据库发送数据的类,这样它就可以根据你发送到它的内容实例化到不同的对象中,但继承是一个大问题,也可能有其他方法而不是在某些类中初始化...

1 个答案:

答案 0 :(得分:2)

是的,你可以。
它是通过Class.new

的Ruby元编程101

示例:
http://blog.rubybestpractices.com/posts/gregory/anonymous_class_hacks.html
http://blog.jayfields.com/2008/02/ruby-creating-anonymous-classes.html

对于在检索它们时对名称进行黑客攻击,请查看此答案中的const_set: Dynamically define named classes in Ruby

你基本上会检查你的数据库并只创建类。