2015-11-05 7 views
5

Beim Erstellen einer neuen Rails-Anwendung wird standardmäßig die Seite "Welcome to Rails" unter / angezeigt, sofern Sie keine Alternative root in routes.rb angeben.Kann ich das Standardstammverzeichnis in einer Rails-Anwendung entfernen, ohne ein neues zu erstellen?

Meine Anwendung dient derzeit nur Dinge von einem Unterpfad (z. B. /api/v1/), so dass Zugriff auf / in einem 404 führen sollte. Wie kann ich dies erreichen?

+0

Zum Beispiel, 'root to: 'home # no_root'', die eine 404 –

+0

Das scheint zu funktionieren; Gibt es keinen schöneren Weg dies zu tun? – DanielGibbs

+0

Anwendungen haben in der Regel eine Wurzel :) –

Antwort

5

Wenn Sie eine 404 Antwort rendern möchten, gibt es zwei Ansätze, die ich mir vorstellen kann.

Erstens könnten Sie Route Rack und gibt eine einfache 404 Antwort:

# config/routes.rb 
root to: proc { [404, {}, ["Not found."]] } 

Zweitens könnte man die offensichtliche Route und Punkt Wurzel zu einem Controller Handeln die 404 zurückgibt:

# config/routes.rb 
root to: "application#not_found" 

# app/controllers/application_controller.rb 
def not_found 
    render text: "Not found.", status: 404 
end 

Die dritte Option ist natürlich, zu einer nicht existierenden Aktion zu routen, aber ich denke nicht, dass dies eine gute Idee ist, da die Absicht verdeckt ist und leicht für einen Fehler angenommen werden kann.