Ruby преобразовать строку в аргумент ключевого слова
У меня есть функция в ruby, которая принимает ключевые аргументы в следующей форме:
def get_customer_information(name: nil, dob: nil, age: nil, state: nil)
... query db based on supplied parameters
end
Пользователь может указать 1 для всех аргументов ключевого слова. Существует также интерфейс командной строки, в котором пользователь может использовать эту функцию, вызывая вызов командной строки и передавая ключ / значение информации в следующей форме:
>GetCustomerInformation name=myName, dob=myDOB
Параметры разбираются и разделяются на ключи и значения. Однако мне нужно знать, какой аргумент ключевого слова связан с предоставленным вводом из командной строки. Есть ли способ преобразовать строку в аргумент ключевого слова (например, преобразовать имя в имя:), чтобы мне не нужно было выполнять сравнение строк для каждого параметра, чтобы определить, с каким аргументом ключевого слова он связан, что приводит к вызову формы:
get_customer_information(name.to_keyword myName, dob.to_keyword myDOB)
Или это не возможно в ruby?
1 ответ
Вы можете использовать метод .to_sym. Это метод функции ruby, который конвертирует строку в символ.
Или используя собственные rails, "имя символа".parameterize.underscore.to_sym. Это преобразует строку в : имя_символа. Это использует соглашение по именованию рельсов.