新手问题 动态生成 Class

birbird · 2015年07月18日 · 最后由 gihnius 回复于 2015年07月20日 · 1860 次阅读

我有一个 Module,里面有一些 Entity Class,另外还需要加一些 Entity Class 的变种,只是对原有的 Entity Class 做了一些变化,我想能运行时生成这些变种 Class,还是在这个 Module 里。 请问这个应该怎么搞,主要是

  1. 生成 Class 的代码应该写在什么地方
  2. 怎么用代码来构造 Class
  1. 应该在模块定义一个方法就可以了吧?
  2. 基于 class Entity 定义新 class ruby def variant_entity(name) return if define?(name.classify.constantize) == "constant" klass = Class.new Entity do def changes end ... end Object.const_set name.classify, klass end

仅供参考

#1 楼 @gihnius 代码构造类,应该用 eval(“class xxx。。。end”)

语句之间用;分开

#2 楼 @yan32768 条条大路通罗马 eval 字符串很没意思的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号