Na froncie testowym, naprawdę dobrym sposobem na zrobienie tego (przynajmniej w celach programistycznych) jest wykorzystanie Pasażera i ustawienie środowiska railsowego do produkcji (lub skomentowanie "rozwoju RailsEnv" w konfiguracji strony). Przynajmniej w ten sposób można naśladować sposób jego działania w produkcji.
Jednak, aby to zrobić, mam wiele plików ustawień, które są analizowane podczas uruchamiania i są pobierane w zależności od środowiska. Jednym z ustawień jest wyświetlanie stron błędów (AppSettings.show_page_errors?).Wtedy w moim kontroler aplikacji, mam
if !AppSettings.show_page_errors?
alias_method :rescue_action_locally, :rescue_action_in_public
end
tak, to na ogół zestaw do ustawień domyślnych, ale czasami naprawdę trzeba zobaczyć, co dokładnie się dzieje, więc mogę go wyłączyć na produkcji.
Kolejnym krokiem jest użycie niestandardowych stron. W moim przypadku mam szablony oparte na błędzie, które zawierają również formularz do przesłania do formularzy google (ponieważ mój serwer może być uszkodzony). Aby to zrobić, umieścić to (i zmienić w razie potrzeby) w kontroler aplikacji:
def render_optional_error_file(status_code)
status = interpret_status(status_code)
render :template => "/errors/#{status.to_s[0,3]}.html.haml", :status => status, :layout => 'application.html.haml' if [404, 422, 500].include?(status)
render :template => "/errors/unknown.html.haml", :status => status, :layout => 'application.html.haml' unless [404, 422, 500].include?(status)
end
To spowoduje, że kody stanu 404, 422 i 500 przy użyciu szablonu, ale poza tym to wykorzystuje nieznane. Jeśli potrzebujesz obsługiwać innych, to tylko kwestia aktualizacji tej metody i dodania szablonu.
Nie szyny 3 przyjazne – AnApprentice
@AnApp może być .. to stara odpowiedź - można opublikować wersję Rails 3 jako osobną odpowiedź. – Gishu
Co to jest wersja Rails 3? –