字符串到方法名称

时间:2017-02-25 14:14:50

标签: ruby-on-rails ruby

我似乎无法跟随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

1 个答案:

答案 0 :(得分:2)

method(action).call

public_send(action)

示例:

method(action).call
#=> James
public_send(action)
#=> James

请注意,上面的 none 关心上下文,其中最初定义的是方法,因此两者都会在当前对象的上下文中调用它