我似乎无法跟随this answer,但也许它与我想要达到的目标不同。
我有一个字符串,该字符串在时间上可能不同,我需要将该字符串转换为已定义的方法名称:
action = "get_name"
# The method
def get_name
puts "James"
end
# Calling the method
action # => undefined method `action' for main:Object
action
可以是我定义的任何方法,名称是字符串格式。我可以说action.to_method
,你明白我的意思;)
我不认为我可以说action.to_sym
?
答案 0 :(得分:2)
method(action).call
或
public_send(action)
示例:
method(action).call
#=> James
public_send(action)
#=> James
请注意,上面的 none 关心上下文,其中最初定义的是方法,因此两者都会在当前对象的上下文中调用它