ruby - 在 ruby 中将字符串转换为类名
问题描述
我正在尝试用 ruby 编写一个脚本,其中涉及将字符串转换为类名。因为我使用的是纯红宝石,所以我不能使用.constantize
. 我试过使用Object.const_get('String')
但不知道为什么它会抛出一个 uninitialized constant String (NameError)
我require 'active_support'
在文件的顶部
解决方案
为匿名类指定名称的常规方法如下。
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。
推荐阅读
- shiny - R Shiny 中具有动态输入的方差分析表
- batch-file - 使用批处理文件共享参考库
- assembly - 对 AX 和 AL 寄存器感到困惑
- docusignapi - Docusign - 在 HTML 文档中设置选项卡 - hideValueOnDocument
- javascript - 在 for 循环中使用 typeof 变量会引发错误
- python - 我可以在 soup.find_all() 函数中搜索多个 HTML 元素吗?
- java - 从具有孤立父 ID 的表中删除嵌套行
- python - 如何获取与放置在 QTableWIdget 中的 QCheckbox 关联的 QModelIndex
- module - 无法运行模块
- php - 即使请求成功,PHP curl_errno 也会返回 7