Rails의 devise로 로그인하고 있을 때 신규 등록 화면, 로그인 화면에 가려고 하면 루트로 날아간다

2528 단어 루비Railsdevise

하고 싶은 일



Rails의 devise를 사용하여
「로그인하고 있는 상태」일 때는
신규 등록 or 로그인 화면으로 날 수 없게 한다.

움직임



로그인할 때
신규 등록 or 로그인 화면으로 날으려고 하면
루트로 날아간다.

구현 방법



루트를 확인하면 다음과 같다.
신규 등록 > sign_up > devise/registrasions#new
로그인 > sign_in > devise/sessions#new



위 두 가지 액션 중
로그인한 경우 경로로 리디렉션되도록 설정합니다.

코드



신규 등록



app/controllers/users/registrations_controller.rb

class Users::RegistrationsController < Devise::RegistrationsController
  # before_action :configure_sign_up_params, only: [:create]
  # before_action :configure_account_update_params, only: [:update]

  # GET /resource/sign_up
  # newの部分のコメントアウトを外し、redirect_toを追加
  def new
    redirect_to :root if user_signed_in?
    super
  end

  # POST /resource
〜〜〜〜〜
省略
〜〜〜〜〜

end

로그인



app/controllers/users/sessions_controller.rb
class Users::SessionsController < Devise::SessionsController
  # before_action :configure_sign_in_params, only: [:create]

  # GET /resource/sign_in
  # newのコメントアウトを外してリダイレクト、ifを入れる
  def new
    redirect_to :root if user_signed_in?
    super
  end

  # POST /resource/sign_in
〜〜〜〜
省略
〜〜〜〜

end

좋은 웹페이지 즐겨찾기