我有很多类要定义,但我不想重复以下工作:
class A < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)
是否有任何声明语句来定义类而不使用该class语句?
如果事先知道需要定义哪些类,那么class为了清楚起见,您应该生成使用关键字明确定义它们的代码.
但是,如果您确实需要动态定义它们,可以Object.const_set结合使用Class.new.要定义几个子类ActiveRecord::Base:
%w{A B C D}.each do |name|
Object.const_set name, Class.new(ActiveRecord::Base)
end
Run Code Online (Sandbox Code Playgroud)
上面的结果是四个新的名字A..D,所有的孩子ActiveRecord::Base.
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |