Controllerについて その2(redirect_to)


コントローラ内のアクションについて学習して、少し難しく感じた、
redirect_toとrender
について記事にします。


  • redirect_to

主な役割は以下の二つ。

  1. アプリケーション内の他のアクションを呼び出す。
  2. 他のURLやPATH先にリダイレクトさせる。

他にもパラメーターを渡したりと色々出来るようですが、直近ではまだ恐らく使わないので無視します。 Progateの中では 2. の用途で使うことが多いです。

具体的に自分が使ったような例だと、

def authenticate_user
    if @current_user == nil
      flash[:notice] = "ログインが必要です"
      redirect_to("/login")
    end
  end


のようにユーザーがログインしていない状態の時にlocalhost:3000/login に飛んで戻るというコードです。 アクション名はauthenticate_userインスタンス変数@current_userがない場合(ログインしていない状態)、ログインページに飛ぶという処理です。



記事が長くなりそうなので次回renderについてとredirect_toとの違いについて記事にします。