这是一个非常简单的场景..
我试图从对象用户获取所有用户名和id作为哈希。
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或字符串函数)从字符串中删除双引号。但是,我期待非常优化和简单的解决方案。
答案 0 :(得分:1)
如果你有这样的名字“name @ bond”
"name@bond".to_sym #=>output :"name@bond"
然后你必须要删除@'“..任何其他特殊字符
"name@bond".parameterize.underscore.to_sym #=> :name_bond
"name@bond".parameterize #=> "name-bond"
"name-bond".underscore #=> "name_bond"
"name_bond".to_sym #=> :name_bond
这是参考ruby-doc symbols
答案 1 :(得分:0)
试
'test'.parameterize.underscore.to_sym
或
'test'.to_sym