首页 > 解决方案 > 在 ruby​​ 中将字符串转换为类名

问题描述

我正在尝试用 ruby​​ 编写一个脚本,其中涉及将字符串转换为类名。因为我使用的是纯红宝石,所以我不能使用.constantize. 我试过使用Object.const_get('String')但不知道为什么它会抛出一个 uninitialized constant String (NameError)

require 'active_support'在文件的顶部

标签: ruby

解决方案


为匿名类指定名称的常规方法如下。

bub = Class.new do
  def b
    'hi'
  end
end

str = 'Bubba'
Object.const_set(str, bub)

Bubba.is_a?(Class)
  #=> true
Bubba.new.b
  #=> "hi"

那是你想做的吗?如果是这样,如您所见,您需要使用Module#const_set


推荐阅读