2017-01-10 3 views
0

Ich habe eine Sinatra-App geschrieben, um Daten aus einer Datenbank anzuzeigen. Der Benutzer kann eine Kundennummer in ein Formular eingeben. Dies wird dann über eine Route /customer/search behandelt, die die Eingabe des Forums über erfasst, verarbeitet und die Ergebnisse auf der Webseite erscheinen. Einige Abfragezeichenfolgen im Rack verstecken

Was würde ich tun, ist ordentlich die URL, also anstatt zu sagen

my_url/customer/search?customer_number=123456 

Es sagt einfach

my_url/customer/?123456 

Ich habe dies auf anderen Websites zu sehen, so dass es sein muss, im Allgemeinen möglich, aber ist es möglich mit Rack & sinatra?

Meine App ist im modularen Format, daher wird die Anwendung gestartet, indem rackup config.ru ausgeführt wird.

Antwort

1

So etwas wie

get '/customer/:customer_number' 

?

Sie brauchen überhaupt keine Parameter in der Abfragezeichenfolge (keine ? in der URL). In diesem Fall ist ein Parameter von der URL.

+0

'my_url/customer /? 123456' gibt mir immer noch, was es vorher getan hat - eine Sinatra-Fehlermeldung – reedstonefood

+0

Nun, wenn Sie ein?, Sind diese Abfrage Zeichenfolge Parameter und Paare von Schlüssel und Werte. Wie, 'my_url/customer /? Customer_number = 123456'. Aber ich sagte, Sie brauchen keine Abfrage-String-Parameter. Befreien Sie sich von diesem '?' – Ursus

+0

Ah! Ja, das funktioniert - ich war auf dieser anderen App, die ein '?' Hat, hängen, aber das ist genauso gut. Problem ist jetzt, was mit dem Formular zu tun, wo der Benutzer die Kundennummer eingeben kann? Muss ich es neu formulieren, um kein Formular zu sein und stattdessen eine Umleitung zu einer URL zu sein? Oder gibt es eine cleverere/einfachere Option? Die Aktion ist momentan auf '/ customer/search 'eingestellt. – reedstonefood

Verwandte Themen