Controllerについて その2(redirect_to)
コントローラ内のアクションについて学習して、少し難しく感じた、 redirect_toとrender について記事にします。
redirect_to
主な役割は以下の二つ。
- アプリケーション内の他のアクションを呼び出す。
- 他の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との違いについて記事にします。