sql >> Database >  >> RDS >> Mysql

Rails:onderhoudspagina weergeven als er geen databaseverbinding beschikbaar is

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.



  1. Wijzig alle tabellen in de database

  2. MySQL-functies gebruiken in door PHP PDO voorbereide statements

  3. Alle berichten tellen die tot een categorie EN zijn subcategorieën behoren

  4. Volledig via FIFO's aan MySQL-client koppelen