Ich möchte Parameter von URL extrahieren. Ich habe folgende Pfad Muster:Extrahieren Sie URL-Parameter in Ruby
pattern = "/foo/:foo_id/bar/:bar_id"
Und Beispiel url:
url = "/foo/1/bar/2"
Ich mag würde bekommen {foo_id: 1, bar_id: 2}. Ich habe versucht, Muster in etwas zu konvertieren:
"\/foo\/(?<foo_id>.*)\/bar\/(?<bar_id>.*)"
ich auf den ersten Schritt schlug fehl, wenn ich Backslash in URL ersetzen wollte:
formatted = pattern.gsub("/", "\/")
Wissen Sie, wie diese gsub zu beheben? Vielleicht weißt du eine bessere Lösung dafür.
EDIT: Es ist schlicht Ruby. Ich benutze keine RoR.
Sie haben Backslash zu überspringen. probiere dies 'gsub ("/"," \\/")' –
Du musst nur Schrägstriche in einem Regexp-Literal ('/ foo \/bar /') entschlüsseln. Wenn Sie einen Regexp aus einem String definieren, den Sie nicht benötigen ('Regexp.new (" foo/bar ")'). (Sie können dies selbst mit dem eingebauten 'Regexp.escape' überprüfen.' Regexp.escape ("foo/bar") 'gibt '" foo/bar "' zurück.) –