小编dan*_*lee的帖子

在模块/命名空间内的运行时创建一个类

在运行时创建类如下:

klass = Class.new superclass, &block
Object.const_set class_name, klass
Run Code Online (Sandbox Code Playgroud)

例:

class Person
  def name
    "Jon"
  end
end

klass = Class.new Person do
  def name
    "#{super} Doe"
  end
end

Object.const_set "Employee", klass

puts Employee.new.name # prints "Jon Doe"
Run Code Online (Sandbox Code Playgroud)

现在,假设您有一个名为Company的模块:

module Company
end
Run Code Online (Sandbox Code Playgroud)

如何在公司模块/命名空间内的运行时创建Employee类,以便以下产生相同的结果?

puts Company::Employee.new.name # prints "Jon Doe"
Run Code Online (Sandbox Code Playgroud)

ruby namespaces module runtime class

7
推荐指数
1
解决办法
3363
查看次数

标签 统计

class ×1

module ×1

namespaces ×1

ruby ×1

runtime ×1