Ruby 将散列推入一个没有大括号的数组

Ruby push a hash into an array with out curly braces

我正在尝试创建用于函数调用的参数列表。

函数调用如下所示:

render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)}

我尝试了以下方法:

params = [key1: value1] 
params.push(key2: value2)

希望使用 splat 运算符 (*) 来填充参数列表。但是,params 如下所示:

[{key1: value1},{key2: value2}]

如有任何帮助,我们将不胜感激。

编辑

我更新了示例代码以添加更多上下文。

函数调用如下所示:

render json: some_json_value, meta: {some_key:  some_value}

我尝试了以下方法:

params = [json: @some_json_value] 
params.push(meta: {some_key:  some_value})

希望使用 splat 运算符 (*) 来填充参数列表。但是,params 如下所示:

[{json: @some_json_value},{meta: {some_key:  some_value}}]

如有任何帮助,我们将不胜感激。

首先想到的是:

[{key1: value1},{key2: value2}].inject(:merge)
#=> {key1: value1, key2: value2}

您的方法需要一个散列(而不是散列数组)。因此你必须使用散列来构建你的参数:

parameters = { :key1 => value1 }
parameters[:key2] = value2

somefunction parameters