Ich versuche, eine Parameterliste zur Verwendung in einem Funktionsaufruf zu erstellen.
Der Funktionsaufruf sieht folgendermaßen aus:
render json: @flight, meta: {url: Flight.encrypt(@flight.id.to_s)}
Ich habe Folgendes versucht:
params = [key1: value1]
params.push(key2: value2)
In der Hoffnung, den splat-Operator zu verwenden (*
), um die Parameterliste zu füllen. Params sieht jedoch so aus:
[{key1: value1},{key2: value2}]
Jede Hilfe würde sehr geschätzt werden.
Ich habe den Beispielcode aktualisiert, um mehr Kontext hinzuzufügen.
Der Funktionsaufruf sieht folgendermaßen aus:
render json: some_json_value, meta: {some_key: some_value}
Ich habe Folgendes versucht:
params = [json: @some_json_value]
params.push(meta: {some_key: some_value})
In der Hoffnung, den splat-Operator zu verwenden (*
), um die Parameterliste zu füllen. Params sieht jedoch so aus:
[{json: @some_json_value},{meta: {some_key: some_value}}]
Jede Hilfe würde sehr geschätzt werden.
Antworten:
2 für die Antwort № 1Ihre Methode erwartet einen Hash (kein Array von Hashes). Daher müssen Sie einen Hash verwenden, um Ihre Parameter zu erstellen:
parameters = { :key1 => value1 }
parameters[:key2] = value2
somefunction parameters
0 für die Antwort № 2
Zuerst was mir einfällt:
[{key1: value1},{key2: value2}].inject(:merge)
#=> {key1: value1, key2: value2}