0

在哈希创建期间是否可以将字符串转换为符号?也就是说,如果我有一个字符串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'})

不幸的是,这给了我一个错误,它期望 a=>而不是 a )

4

4 回答 4

2

您可以将字符串转换为符号:

'application_id'.to_sym => id
于 2013-10-10T22:13:30.880 回答
1
h = {}
str = "application_id"
h[str.to_sym] = "1234A"
p h # => {:application_id=>"1234A"}
于 2013-10-10T22:25:05.007 回答
0

听起来你正在寻找一种方法来做到这一点

id = 5
bar = "foo"
{
  :"#{bar}" => id
}

返回

{:foo => 5}

所以你可以做

{ :"#{'application_id'}" => id }
于 2013-10-10T22:24:54.787 回答
0

可以想象你想要的只是

connection.merge(application_id: '1234A', FirstName: 'John', LastName: 'Smith').    
于 2013-10-11T00:37:33.397 回答