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
我正在尝试创建用于函数调用的参数列表。
函数调用如下所示:
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