使用.constantize从单独的字符串调用类和方法

Dav*_*ley 2 ruby ruby-on-rails

我正在尝试调用一个类和方法,它们都作为字符串存储在DB中.我想从这两个字符串创建一个对象

class_name = 'Some::Class'
method_name = 'a_method'
params = {foo: 'bar'}

class_name.new(params).method_name
Run Code Online (Sandbox Code Playgroud)

我以前使用Contantize进行类似的方法,但我不确定这里最好的解决方案是什么?

谢谢

Ily*_*lya 5

你可以使用const_get:

Class.const_get(class_name).new(params).public_send(method_name)
Run Code Online (Sandbox Code Playgroud)