Entfernen einen Teil einer URL mit Rubin

Entfernen der query-string aus der URL im Ruby getan werden könnte, wie diese:

url.split('?')[0]

Wo url wird die komplette URL einschließlich der query-string (z.B. url = http://www.domain.extension/folder?schnoo=schnok&foo=bar).

Gibt es einen schnelleren Weg, dies zu tun, d.h. ohne Verwendung von split, sondern mit Schienen?

edit: das Ziel ist Die Weiterleitung von http://www.domain.extension/folder?schnoo=schnok&foo=bar zu http://www.domain.extension/folder.

EDIT: ich verwendet:

url = 'http://www.domain.extension/folder?schnoo=schnok&foo=bar'
parsed_url = URI.parse(url)
new_url = parsed_url.scheme+"://"+parsed_url.host+parsed_url.path
  • Ich bin nicht sicher, ob ich völlig verstehen, Ihr Ziel. Wollen Sie extrahieren von Parametern aus dem request im controller?
  • Ist dies die URL der aktuellen Anforderung, oder nur eine völlig willkürliche URL?
  • Sie müssen Sie auf port hinzufügen, wenn vorhanden (und nicht 80): new_url = "#{parsed_url.scheme}://#{parsed_url.host}#{parsed_url.port != 80 ? (':'+parsed_url.port) : ''}#{parsed_url.path}"
  • +parsed_url.port funktionieren nicht ohne explizite Konvertierung in string-ersten. Verwenden +parsed_url.port.to_s statt.
  • das ist richtig, nicht getestet, sollte (':'+parsed_url.port.to_s)
InformationsquelleAutor TTT | 2012-05-02
Schreibe einen Kommentar