Ответ 1
Лучший способ, вероятно, это:
methods.each { |methodName| send(methodName, 'abc') }
Смотрите объект # отправить
У меня есть два метода, определенные в моем рубиновом файле.
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" ), а не вызывает вызов метода.
Как преобразовать строку в имя метода? Любая помощь приветствуется.
Ура!!
Лучший способ, вероятно, это:
methods.each { |methodName| send(methodName, 'abc') }
Смотрите объект # отправить
Попробуйте использовать "отправить".
methods.each do |method|
self.send(method, "abc")
end
Вы также можете добавить хеш для отправки параметров в метод.
send("method_name", "abc", {add more parameters in this hash})