Je zou een weergave kunnen maken in wat je root_path-controller ook is:
map.root :controller => "foo", :action => "index"
Laten we zeggen dat u deze weergave "db_maintenance.html.erb" noemt. Doe dit in je controller:
def index
begin
@widgets = Widget.find(:all)
rescue Exception => e
# This will only happen if DB stuff fails
redirect_to :action => "db_maintenance", :error => e.message
end
end
...
def db_maintenance
@error = params[:error] # You might want to do something with this here or in the view
# renders the app/views/foo/db_maintenance.html.erb view
end
Naar jouw mening zou je zoiets kunnen plaatsen als:
<h1>Sorry for the inconvenience</h1>
blah blah blah. This happened because of:
<pre><code><%= @error %></code></pre>
Dit helpt natuurlijk alleen als de gebruiker de hoofdpagina van uw site bezoekt, maar u kunt van daaruit gemakkelijk extrapoleren. U kunt de actie "def db_maintenance" toevoegen aan de applicatiecontroller en handmatig specificeren welke weergave deze ook moet weergeven. Het is niet perfect, maar het zou de klus moeten klaren.