Bạn có thể tạo một dạng xem trong bất kỳ bộ điều khiển root_path nào của bạn:
map.root :controller => "foo", :action => "index"
Giả sử bạn gọi chế độ xem này là "db_maintenance.html.erb". Trong bộ điều khiển của bạn, hãy thực hiện điều này:
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
Theo quan điểm của bạn, bạn có thể đặt một cái gì đó như:
<h1>Sorry for the inconvenience</h1>
blah blah blah. This happened because of:
<pre><code><%= @error %></code></pre>
Tất nhiên, điều này chỉ hữu ích nếu người dùng truy cập trang chính của trang web của bạn, nhưng bạn có thể dễ dàng ngoại suy từ đó. Bạn có thể thêm hành động "def db_maintenance" vào bộ điều khiển ứng dụng và chỉ định theo cách thủ công chế độ xem mà nó cũng sẽ hiển thị. Nó không hoàn hảo, nhưng nó sẽ hoàn thành công việc.