字符串到哈希中的符号

时间:2013-10-10 22:11:10

标签: ruby

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

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

4 个答案:

答案 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').