2016-08-31 2 views
1

Ich versuche, eine URL als param meiner Rails-Anwendung weitergeben müssen:Fehler beim Parsen Rails Params

Started DELETE "/images/0?s3_filepath=https://s3.amazonaws.com/buildinprogresstest/uploads/blllbyq5k3qinl4l/uploads_2F9qggxxf5dvlsor-667601c8f38d8d41af07828accbf3147_2F2014-07-13%252B18.44.29.jpg" for 127.0.0.1 at 2016-08-31 11:52:09 -0400 

Die s3_filepath ist nicht richtig in den params analysiert werden:

Parameters: {"s3_filepath"=>"https://s3.amazonaws.com/buildinprogresstest/uploads/blllbyq5k3qinl4l/uploads_2F9qggxxf5dvlsor-667601c8f38d8d41af07828accbf3147_2F2014-07-13%2B18.44.29.jpg", "id"=>"0"} 

Wenn Sie genau hinsehen, enthält der Dateiname die Sequenz "252B18", aber die Parameter scheinen die Zahlen "52" zu entfernen.

Ich weiß nicht, warum das passiert. Irgendwelche Ideen?

Antwort

1

Normalerweise sind Parameter auf der Schienen-Seite url-codiert und decodiert. % 25 wird in% dekodiert, deshalb wird es aus Ihrer Eingabe entfernt. Sie müssen diese URL richtig codieren.

In Ruby Sie cgi.escape

CGI.escape "https://s3.amazonaws.com/buildinprogresstest/uploads/blllbyq5k3qinl4l/uploads_2F9qggxxf5dvlsor-667601c8f38d8d41af07828accbf3147_2F2014-07-13%252B18.44.29.jpg" 
=> "https%3A%2F%2Fs3.amazonaws.com%2Fbuildinprogresstest%2Fuploads%2Fblllbyq5k3qinl4l%2Fuploads_2F9qggxxf5dvlsor-667601c8f38d8d41af07828accbf3147_2F2014-07-13%25252B18.44.29.jpg" 

Wenn Sie diese Anfrage senden via JavaScript verwenden, können Sie Escape-Funktion in Javascript

escape("https%3A%2F%2Fs3.amazonaws.com%2Fbuildinprogresstest%2Fuploads%2Fblllbyq5k3qinl4l%2Fuploads_2F9qggxxf5dvlsor-667601c8f38d8d41af07828accbf3147_2F2014-07-13%25252B18.44.29.jpg") 
+0

Danke verwenden können! Die Escape-Funktion funktionierte für mich. – scientiffic