2015-11-05 5 views
5

Quando si crea una nuova applicazione Rails, per impostazione predefinita viene visualizzata la pagina "Benvenuti in Rails" al numero / a meno che non si specifichi un'alternativa root in routes.rb.Posso rimuovere la root predefinita in un'applicazione Rails senza crearne una nuova?

La mia applicazione attualmente serve solo le cose da un sottotracciato (ad esempio /api/v1/) quindi l'accesso a / dovrebbe comportare un 404. Come posso realizzare questo?

+0

Ad esempio, 'root to: 'home # no_root'', che renderizza un 404 –

+0

Che sembra funzionare; non c'è un modo migliore per farlo? – DanielGibbs

+0

Le applicazioni di solito hanno una radice :) –

risposta

5

Se si desidera eseguire il rendering di una risposta 404, ci sono due approcci che posso pensare.

In primo luogo, si potrebbe rotta verso Rack, e restituire una semplice 404 risposta:

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

In secondo luogo, si potrebbe prendere la strada ovvia e la radice punto ad un'azione di controllo che restituisce 404:

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

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

La terza opzione è, naturalmente, il passaggio a un'azione non esistente, ma non penso che sia una buona idea, poiché l'intenzione è oscurata e potrebbe facilmente essere presa per un errore.

Problemi correlati