首页 > 解决方案 > 使用 ruby​​ send 方法创建和构建一个新类

问题描述

我有一些我想动态调用的类:

 Sms::Message::TenMinutesBeforeReminderMessage.new(data).build
Sms::Message::OneHourAfterReminderMessage.new(data).build

我希望能够做这样的事情:

send("Sms::Message::#{reminder}ReminderMessage.new(data).build")

reminder符号在哪里。这可能吗?如果是这样,我似乎无法弄清楚语法

标签: ruby-on-railsruby

解决方案


你使用Rails 中的constantize来做到这一点:

klass = "Sms::Message::#{reminder}ReminderMessage".constantize
klass.new(data).build

推荐阅读