Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails中将字符串转换为类名_Ruby On Rails_Ruby - Fatal编程技术网

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())