Ruby on rails 在rails中将字符串转换为类名
我有一个变量Ruby on rails 在rails中将字符串转换为类名,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个变量handler,其值可以是flight\u gds、flight\u commission等。 在我的应用程序中有类,在模块FlightManager下有FlightGds、FlightCommission等名称 我想根据处理程序的值执行类的函数。 函数名在所有类中都是相同的,只是类名不同,这取决于 处理者 例如: 如果处理程序名称为“FlightGds”,则函数为FlightManager::FlightGds.calculate() 我正在尝试这样的事情: FlightManag
handler
,其值可以是flight\u gds、flight\u commission等。
在我的应用程序中有类
,在模块FlightManager
下有FlightGds、FlightCommission
等名称
我想根据处理程序的值执行类的函数。函数名在所有类中都是相同的,只是类名不同,这取决于 处理者 例如:
如果处理程序名称为“
FlightGds
”,则函数为FlightManager::FlightGds.calculate()
我正在尝试这样的事情:
FlightManager::handler.camelize.calculate()
但是我得到了未定义的方法处理程序错误
有什么方法可以做到这一点,或者我应该使用if/else
循环?您应该使用它来获取基于字符串中的名称的类:
"FlightManager::#{handler.camelize}".constantize.calculate())
您应该使用以字符串形式根据类的名称获取类:
"FlightManager::#{handler.camelize}".constantize.calculate())