Подтвердить что ты не робот

Ruby превратить строку в символ

Привет. Я хочу создать помощник вида с аргументом размера (например, func(size)), проблема заключается в том, что этот размер должен использоваться в функции как :size т.е. если я передаю medium в функцию Мне нужно преобразовать его в :medium.

Как это сделать?

4b9b3361

Ответ 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