ruby-on-rails - 使用 ruby send 方法创建和构建一个新类
问题描述
我有一些我想动态调用的类:
Sms::Message::TenMinutesBeforeReminderMessage.new(data).build
Sms::Message::OneHourAfterReminderMessage.new(data).build
我希望能够做这样的事情:
send("Sms::Message::#{reminder}ReminderMessage.new(data).build")
reminder
符号在哪里。这可能吗?如果是这样,我似乎无法弄清楚语法
解决方案
你使用Rails 中的constantize来做到这一点:
klass = "Sms::Message::#{reminder}ReminderMessage".constantize
klass.new(data).build
推荐阅读
- python - 将dict附加到json python烧瓶
- php - 每小时获取今天注册的用户
- css - 缩小视口时如何使图像居中?
- android - 按内部列表值过滤子项
- javascript - 使用 javascript 预填充 onclick 内容
- json - 从 d3 中的局部变量读取节点数据
- json - @RestController 自定义 ResponseEntity - 杰克逊
- vue.js - data change doesn't reflect in vue application
- debugging - 将方案对象序列化为字符串
- node.js - 为什么“fs”在作为 ES6 模块导入时不起作用?