4.6 その他

リダイレクトする

リダイレクトさせるにはredirect_toメソッドを利用します。

特定のリンクにリダイレクトする

redirect_toメソッドにパスまたはURLを渡して上げることでリダイレクトできます。

redirect_to root_path # /にリダイレクトされる
redirect_to "https://www.google.com" # Googleのホームページにリダイレクトされる

前のページにリダイレクトする

redirect_backメソッドを使うことで一つ前のページにリダイレクトすることができます。

redirect_back(fallback_location: root_path)

fallback_locationはリダイレクト先がない場合にリダイレクトする場所を指定することができます。上の例の場合、ページが戻れないときはroot_pathにリダイレクトされることになります。

エラー処理をする

エラーを捕捉するにはrescue_fromメソッドを使います。引数に補足する例外と補足時に実行する処理を指定します。 以下の例ではException例外が発生したときhandle_internal_server_errorメソッドが呼ばれます。

class ApplicationController < ActionController::Base
  rescue_from Exception, with: :handle_internal_server_error

  private
    def handle_internal_server_error
      flash[:error] = '内部エラーが発生しました'
      redirect_to root_path
    end
end

Basic認証を設定する

Basic認証をかけるにはauthenticate_or_request_with_http_basicメソッドを使います。このメソッドはクライアントから受け取ったユーザー名とパスワードが ブロックの変数として渡ってくるので、それを利用して設定した値と照合します。trueが返ると認証に成功します。

class ApplicationController < ActionController::Base
  before_action :basic_authentication

  private
    def basic_authentication
      authenticate_or_request_with_http_basic do |username, password|
        username == 'admin' && password == '123456789' # ユーザー名はadmin, パスワードは123456789
      end
    end
end

results matching ""

    No results matching ""