Ruby превратить строку в символ
Привет. Я хочу создать помощник вида с аргументом размера (например, func(size)
), проблема заключается в том, что этот размер должен использоваться в функции как :size
т.е. если я передаю medium
в функцию Мне нужно преобразовать его в :medium
.
Как это сделать?
Ответы
Ответ 1
Существует несколько способов сделать это:
Если ваша строка не имеет пробелов, вы можете просто:
"medium".to_sym => :medium
Если ваша строка содержит пробелы, вы должны сделать это:
"medium thing".gsub(/\s+/,"_").downcase.to_sym => :medium_thing
Или, если вы используете Rails:
"medium thing".parameterize.underscore.to_sym => :medium_thing
Ссылки: Преобразует строку в символ в рубине
Ответ 2
Вы можете преобразовать строку в символ следующим образом:
string = "something"
symbol = :"#{string}"
Ответ 3
Или просто
a = :'string'
# => :string