当前位置 : 主页 > 编程语言 > ruby >

如何在运行时基于ActiveRecord动态创建类? (ruby)

来源:互联网 收集:自由互联 发布时间:2021-06-23
我正在尝试元编程,并希望动态创建一个继承自ActiveRecord的类. 例如,我可以这样做: Object.const_set("Orders", Class.new { def blah() 42 end }) 所以现在我可以: o = Orders.newo.blah #== 42 但是当我尝试:
我正在尝试元编程,并希望动态创建一个继承自ActiveRecord的类.

例如,我可以这样做:

Object.const_set("Orders", Class.new { def blah() 42 end })

所以现在我可以:

o = Orders.new
o.blah   #<== 42

但是当我尝试:

Object.const_set("Orders", Class.new < ActiveRecord::Base { def blah() 42 end })

给我一个语法错误和

Object.const_set("Orders", Class.new { def blah() 42 end } < ActiveRecord::Base)

在我尝试实例化Orders类之前不会抱怨

有小费吗?

谢谢.

尝试这样做:

SomeClass = Class.new(ActiveRecord::Base) do
  .... #some behaviour
end
网友评论