Ruby конвертировать строку в имя метода

У меня есть два метода, определенные в моем рубиновом файле.

def is_mandatory(string)
      puts xyz
end
def is_alphabets(string)
      puts abc 
end 

Массив, содержащий имена методов.

    methods = ["is_mandatory", "is_alphabets"]

Когда я делаю следующее

    methods.each do |method| puts method.concat("(\"abc\")") end 

Он просто отображает, is_mandatory ( "abc" ) is_alphabets ( "abc" ), а не вызывает вызов метода.

Как преобразовать строку в имя метода? Любая помощь приветствуется.

Ура!!

Ответ 1

Лучший способ, вероятно, это:

methods.each { |methodName| send(methodName, 'abc') }

Смотрите объект # отправить

Ответ 2

Попробуйте использовать "отправить".

methods.each do |method| 
  self.send(method, "abc")
end 

Ответ 3

Вы также можете добавить хеш для отправки параметров в метод.

send("method_name", "abc", {add more parameters in this hash})