Sinatra und Fragezeichen
Muss ich einige Methoden, mit Sinatra, der sollte wie folgt Aussehen:
http//:localhost:1234/hinzufügen?string_to_add
Aber wenn ich es erklären, wie diese:
get "/add?:string_to_add" do
...
end
er nicht sieht, dass die string_to_add
param.
Wie soll ich das erklären meine Methode, und verwenden Sie diesen parameter, um die Dinge funktionieren?
- Haben Sie gesehen, stackoverflow.com/questions/529065/...?
- diese Lösung funktioniert nicht, wenn ich Sie brauche '?' anstelle von '/' vor '*'
Du musst angemeldet sein, um einen Kommentar abzugeben.
In einer URL ein Fragezeichen trennt den Pfad Teil aus der Abfrage Teil. Der query-Teil der Regel besteht aus name/Wert-Paaren, und ist oft konstruiert, indem ein web-browser, um den Daten entsprechen, die ein Benutzer in ein Formular eingegeben hat. Zum Beispiel eine url könnte so Aussehen:
Hier den Pfad Abschnitt in
/submit
, und die Abfrage Abschnitte istname=John&age=93
bezieht sich auf den Wert "John" für diename
- Taste und "93" für dieage
.Wenn Sie erstellen Sie eine route im Sinatra, Sie nur geben Sie den Pfad-Teil. Sinatra dann die Abfrage analysiert, und macht die Daten in der
params
Objekt. In diesem Beispiel könnten Sie so etwas tun:Wenn Sie eine
?
Zeichen bei der Definition von " Sinatra-route, macht es Teil der url optional ist. In dem Beispiel, das Sie verwendet (get "/add?:string_to_add"
), wird es eigentlich mit jedem beliebigen url, beginnend mit/ad
wird, dann Optional eine andered
, und dann alles andere in die:string_to_add
Schlüssel des params-hash, und der Abfrage Abschnitt wird analysiert werden, getrennt. In anderen Worten, das Fragezeichen macht den vorhergehendend
Charakter optional.Wenn Sie wollen, um die " raw " - text der Abfrage-string in Sinatra, Sie können die
query_string
- Methode derAnfrage
Objekt. In deinem Beispiel würde wie folgt Aussehen:Beachten Sie, dass die route nicht die
?
Charakter, nur die Basis/add
.Sollten Sie erklären es als: