2013-10-04 6 views
0

Это очень простой сценарий ..удалить двойные кавычки из строки и преобразовать в символ

я пытался получить все имя пользователя и идентификатор в виде хэша от пользователя объекта.

user = User.all 
data = {} 
User.map do |u| 
    data[u.name.to_sym] = u.id 
end 

# data will be.. 
data[:"test"] = 1 .. 

But, I need like this data[:test] = 1 

Я хочу, чтобы удалить двойные кавычки из строки (начало и конец) и превращаются в символ .. или Есть ли прямой способ преобразования модели объекта в хэш-значение, что я ожидал?

Я знаю, что есть много способов (функции regx или string), чтобы удалить двойные кавычки из строки. Но я ожидаю очень оптимизированного и простого решения.

+0

': "тест" ==: test'; вам действительно нужно удалить цитаты? –

+3

Из любопытства, почему вы против того, чтобы просто использовать строки? –

+0

@JanDvorak Вы правы .. И я это знал .. :-) Но, я думаю, почему двойные кавычки. –

ответ

0

попробовать

'test'.parameterize.underscore.to_sym 

или

'test'.to_sym 
1

Если у вас есть имя, как этот "имя @ связь"

"[email protected]".to_sym #=>output :"[email protected]"

, то вы должны хотите удалить @ ". любые другие специальные символы

"[email protected]".parameterize.underscore.to_sym #=> :name_bond 
"[email protected]".parameterize #=> "name-bond" 
"name-bond".underscore #=> "name_bond" 
"name_bond".to_sym #=> :name_bond 


Вот ссылка ruby-doc symbols

+0

Возьмите примечание, параметризуемое в Gemes ActiveSupport (включено Rails). Вопросы не помечены рельсами, поэтому стоит указать на это –

Смежные вопросы