sql >> Base de Datos >  >> RDS >> Mysql

Rieles:mostrar la página de mantenimiento si no hay una conexión de base de datos disponible

Puede crear una vista en cualquiera que sea su controlador root_path:

map.root :controller => "foo", :action => "index"

Digamos que llama a esta vista "db_maintenance.html.erb". En su controlador, haga esto:

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

En su opinión, podría poner algo como:

<h1>Sorry for the inconvenience</h1>
blah blah blah. This happened because of:
<pre><code><%= @error %></code></pre>

Esto, por supuesto, solo ayuda si el usuario accede a la página principal de su sitio, pero podría extrapolarlo fácilmente desde allí. Puede agregar la acción "def db_maintenance" al controlador de la aplicación y especificar manualmente qué vista debe mostrar también. No es perfecto, pero debería hacer el trabajo.