0

这是一个非常简单的场景..

我试图从对象用户那里获取所有用户名和 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 或字符串函数)可以从字符串中删除双引号。但是,我期待非常优化和简单的解决方案。

4

2 回答 2

2

如果你有这样的名字"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 符号

于 2013-10-04T07:49:10.600 回答
0

尝试

'test'.parameterize.underscore.to_sym

或者

'test'.to_sym
于 2013-10-04T07:01:32.040 回答