2012-03-21 14 views
14

Uso le rotaie 3. Nei binari di produzione gestisce con cura le eccezioni e carica i miei file statici 404.html, 500.html ecc dalla mia directory pubblica. Tuttavia, carica questi file nel mio file layouts/application.html.erb. Sto cercando un modo per istruire i binari a caricare questi file SENZA usare il mio layout di applicazione - ad es. serve solo il file html statico e nient'altro. Qual è il modo migliore per farlo?come eseguire il rendering delle rotaie statiche 404, 500 pagine di errore senza layout del sito?

grazie!

+1

come noto, i binari per impostazione predefinita carica queste pagine di errore senza caricare layout/application.html.erb, correggimi se ho torto –

+1

sto ospitando su heroku e sta caricando questi file nel mio layout dell'app. – istan

risposta

50

render :file => 'public/404.html', :status => :not_found, :layout => false

+4

deve essere ': status =>: not_found' e NOT': status => 'not_found'' Questo mi ha incasinato, ma ora funziona. Grazie! – Josh

+0

ma dove inserisco questa riga di codice? – thedanotto

+2

@thedanotto da qualche parte nel controller. – MikDiet

1

Per un avanzata approccio di lavoro nel quadro Rails. Aggiornare il file routes:

get "/404", to: "errors#error_404" 
get "/500", to: "errors#error_500" 

Aggiungi un ErrorsController con:

layout false 

def error_404 
    render status: 404 
end 

def error_500 
    render status: 500 
end 

Poi all'interno della app/views/errors/ aggiungere i file error_404.erb e error_500.erb insieme a una snazy image e una barra di ricerca.

More info here.

Problemi correlati