是否可以在创建哈希期间将字符串转换为符号?也就是说,如果我有一个字符串application_id
并且我想创建一个哈希值:application_id => '1234A'
,我该怎么做?
我尝试过像application_id.to_sym => id
这样的事情,但这不起作用。
编辑:我正在努力让它在一个函数中运行。我的函数声明类似于:
def merge(external_id, id, opts)
connection.upsert(external_id, external_id.to_sym => id, opts)
end
我会通过merge('application_id', '1234A', {FirstName: 'John', LastName: 'Smith'})
来称呼它。
不幸的是,这给了我一个错误,即它期待=>
而不是)
。
答案 0 :(得分:2)
您可以将字符串转换为符号:
'application_id'.to_sym => id
答案 1 :(得分:1)
h = {}
str = "application_id"
h[str.to_sym] = "1234A"
p h # => {:application_id=>"1234A"}
答案 2 :(得分:0)
听起来你正在寻找一种方法来实现这一目标
id = 5
bar = "foo"
{
:"#{bar}" => id
}
返回
{:foo => 5}
所以你可以做到
{ :"#{'application_id'}" => id }
答案 3 :(得分:0)
可以想象你只想要
connection.merge(application_id: '1234A', FirstName: 'John', LastName: 'Smith').