sql >> データベース >  >> RDS >> Mysql

Rails:データベース接続が利用できない場合にメンテナンスページを表示する

    root_pathコントローラーが何であれビューを作成できます:

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

    このビューを「db_maintenance.html.erb」と呼んでいるとしましょう。コントローラで、これを行います:

    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
    

    あなたの見解では、次のようなものを置くことができます:

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

    もちろん、これはユーザーがサイトのメインページにアクセスした場合にのみ役立ちますが、そこから簡単に推測できます。 「defdb_maintenance」アクションをアプリケーションコントローラーに追加し、レンダリングするビューを手動で指定することもできます。完璧ではありませんが、仕事を成し遂げるはずです。



    1. 別のSQLiteOpenHelperクラスの既存のDBに新しいテーブルを作成します

    2. 月ごとの製品売上を比較するSQLクエリ

    3. 照合を一度にutf8_binに変更する方法

    4. MySQL浮動小数点比較の問題