Programing

Rails & Devise : 레이아웃없이 로그인 페이지를 렌더링하는 방법?

lottogame 2021. 1. 10. 16:43
반응형

Rails & Devise : 레이아웃없이 로그인 페이지를 렌더링하는 방법?


나는 이것이 아마도 간단한 질문이라는 것을 알고 있지만 여전히 Devise를 알아 내려고 노력 하고 있습니다.

render :layout => false내 로그인 페이지를 원합니다 . Devise로 어떻게 할 수 있습니까?


컨트롤러를 서브 클래 싱하고이를 사용하도록 라우터를 구성 할 수 있습니다.

class SessionsController < Devise::SessionsController
  layout false
end

그리고 config/routes.rb:

devise_for :users, :controllers => { :sessions => "sessions" }

세션보기도이 컨트롤러로 이동해야합니다.

또는 다음 에서 방법을 만드십시오 app/controllers/application_controller.rb.

class ApplicationController < ActionController::Base

  layout :layout

  private

  def layout
    # only turn it off for login pages:
    is_a?(Devise::SessionsController) ? false : "application"
    # or turn layout off for every devise controller:
    devise_controller? && "application"
  end

end

app / views / layouts / devise에서 sessions.html.erb 파일을 만들 수도 있습니다. 그러면 해당 레이아웃이 로그인 화면에만 사용됩니다.


devise_controller를 사용하여? 도우미는 Devise 컨트롤러가 활성화 된시기를 결정하고 그에 따라 응답 할 수 있습니다. Devise가 나머지 애플리케이션에 별도의 레이아웃을 사용하게하려면 다음과 같이 할 수 있습니다.

class ApplicationController < ActionController::Base
  layout :layout_by_resource

  protected

  def layout_by_resource
    if devise_controller?
      "devise"
    else
      "application"
    end
  end
end

create a devise.html.erb file in your views/layouts

So if its a device controller will render the devise layout else the application layout

from: https://github.com/plataformatec/devise/wiki/How-To:-Create-custom-layouts

ReferenceURL : https://stackoverflow.com/questions/4412018/rails-devise-how-to-render-login-page-without-a-layout

반응형