Alter Rails paramiert Hash von Rack-Middleware

8

Ich versuche, dem Rails-Params-Hash einen Wert aus einem benutzerdefinierten Rack-Middleware-Objekt hinzuzufügen. Mein aktueller Ansatz verwendet

%Vor%

Ich füge gerade die Middleware nach ActionDispatch :: ParamsParser hinzu. Die Parameter werden nicht in den Rails-Params-Hashs von einem Controller angezeigt, sondern erscheinen im request.params-Hash (innerhalb des oben definierten Middleware-Objekts). Irgendwelche Ideen? Hilfe sehr geschätzt.

    
silatham99 25.04.2014, 02:00
quelle

1 Antwort

13

Die Dokumente für Rack::Request#params sagen:

  

Beachten Sie, dass Änderungen im env nicht beibehalten werden. Verwenden Sie update_param oder delete_param , wenn Sie die Parameter destruktiv ändern wollen.

Wenn Sie die Linie verwenden

%Vor%

Sie fügen den neuen Parameter dem Hash hinzu, der für diese Instanz von Rack :: Request erstellt wurde, aber das env , das an Rails übergeben wird, wird nicht geändert. Um den neuen Wert weiter unten im Rack-Stack verfügbar zu machen, verwenden Sie update_param , wie die Dokumente vorschlagen:

%Vor%     
matt 25.04.2014, 03:58
quelle

Tags und Links