Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Ruby将散列放入一个没有花括号的数组中_Arrays_Ruby_Append_Splat - Fatal编程技术网

Arrays Ruby将散列放入一个没有花括号的数组中

Arrays Ruby将散列放入一个没有花括号的数组中,arrays,ruby,append,splat,Arrays,Ruby,Append,Splat,我正在尝试创建一个参数列表,以便在函数调用中使用 函数调用如下所示: render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)} params = [key1: value1] params.push(key2: value2) [{key1: value1},{key2: value2}] render json: some_json_value, meta: {some_key: some_value} p

我正在尝试创建一个参数列表,以便在函数调用中使用

函数调用如下所示:

render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)}
params = [key1: value1] 
params.push(key2: value2)
[{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})
[{json: @some_json_value},{meta: {some_key:  some_value}}]
我尝试了以下方法:

render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)}
params = [key1: value1] 
params.push(key2: value2)
[{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})
[{json: @some_json_value},{meta: {some_key:  some_value}}]
希望使用splat运算符(
*
)填充参数列表。但是,参数如下所示:

render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)}
params = [key1: value1] 
params.push(key2: value2)
[{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})
[{json: @some_json_value},{meta: {some_key:  some_value}}]
任何帮助都将不胜感激

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

函数调用如下所示:

render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)}
params = [key1: value1] 
params.push(key2: value2)
[{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})
[{json: @some_json_value},{meta: {some_key:  some_value}}]
我尝试了以下方法:

render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)}
params = [key1: value1] 
params.push(key2: value2)
[{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})
[{json: @some_json_value},{meta: {some_key:  some_value}}]
希望使用splat运算符(
*
)填充参数列表。但是,参数如下所示:

render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)}
params = [key1: value1] 
params.push(key2: value2)
[{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})
[{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

谢谢我试过了,但是参数的结果是
{key1:value1,key2:value2}
。我需要
key1:value1,key2:value2
@user2517182:“key1:value1,key2:value2”不是对象。您需要学习区分简化语法和语法将产生的实际内容。根据方法的实现方式,它接受一个哈希或关键字参数。您可以使用散列来调用这两个变量。@user2517182:看到您的编辑,这个答案正是您需要的。你甚至都没试过,我就是这么想的。我已经做过很多次了。但是,当我使用{key1:value1,key2:value2}调用render函数时,出现了一个语法错误
语法错误,意外的“:”,应为“}”
@SergioTulentsev,我确实尝试过它。这就是我编写编辑的原因。您可以在/output中包含所需的
,在本例中是您希望执行的代码(我怀疑
render*params
)。会使你的问题(对我)更清楚。