Wenn Keine route übereinstimmt, dann redirect zur Hauptseite
Wenn ich enter falsche route oder wenn keine Routen-match-Fehler kommt, dann möchte ich umleiten auf root_path. Wie kann ich dies tun?
Danke Im Voraus
InformationsquelleAutor Dipak Panchal | 2012-12-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Aussage das Letzte in Ihrem
config/routes.rb
Datei:Den
"*path"
passen zu nichts und wird redirect auf die root-Pfad.Für weitere Informationen, werfen Sie einen Blick auf route Platzhalter und Umleitung in der offiziellen Rails-guides.
match
Methode in Ihrem router, ohne Angabe einer HTTP-Methode. Wenn Sie möchten, setzen Sie Ihre Aktion sowohl für GET und POST, fügen Sievia: [:get, :post]
option. Wenn Sie möchten, setzen Sie Ihre Aktion zu ERHALTEN, verwenden Sieget
im router: Anstatt: match "- controller#action" Tun: get "- controller#action" (ArgumentError)InformationsquelleAutor Christoph Petschnig
In Rails 4/5 Sie können
Bearbeiten. Wie bereits von @VenkatK diese sollte die Letzte route. Die Art und Weise Routen ere bewertet ist, dass diejenigen, die oben sind wichtiger als jene auf der Unterseite.
InformationsquelleAutor Lukasz Muzyka
Können Sie redirect einen 404, indem Sie diesen in die Routen-Datei (auf der Unterseite).
Umleiten zu root werden, Sie könnten dies tun.
Es ist ein bisschen mehr detail in diesem Antwort und alternative Möglichkeiten, es zu tun durch die Erfassung die Ausnahme.
InformationsquelleAutor cih
Für das neueste Rails 4.2+ die
match
syntax hat sich leicht geändert:Legen Sie diese an der Unterseite Ihres Projekts
config/routes.rb
match '*path', to: redirect('/'), via: :all
InformationsquelleAutor fagiani