Ruby On Rails Layout 적용 질문입니다.

조회수 2231회

안녕하세요 루비온레일즈를 공부하고 있는 학생입니다.

루비 온레일즈 웹페이지에 Layout 부분에 질문이 있습니다.

rails 프로젝트를 만들면 기본적으로 View/layout/application.html.erb 레이아웃이 적용되는데

View/layout/loginlayout.html.erb를 만들어서 각각의 페이지들마다 다른 layout을 적용해주고 싶은데 어떻게해야할까요?

  • 질문이 정확히 이해가 되질 않습니다 ^^; loginlayout.html.erb 하나의 파일을 가지고 여러곳에서 다르게 쓰고 싶다는건가요?;; 알 수 없는 사용자 2016.8.19 09:47

3 답변

  • ㅜㅜ 아니요 각각의 view마다 다른 layout을 주고 싶습니다.

  • render layout: "special_layout"
    

    레이아웃을 하나더 만든다음 컨트롤러에서 이런식으로 가능한것 같습니다

    될지 안될지는 해봐야 알겠네요.

    문서는 여기있습니다

    http://guides.rubyonrails.org/layouts_and_rendering.html

    • (•́ ✖ •̀)
      알 수 없는 사용자
  • 컨트롤러에 아래와 같이 layout 사용을 명시할 수도 있습니다. 아래는 레이아웃 이름을 직접 명시합니다.

    class WatcherController < ApplicationController
      layout "login_layout"
    
    end
    

    인자로 심볼을 넘기는 경우는 아래와 같이 메소드를 호출합니다. 즉 조건에 따라서 레이아웃 분기도 할수도 있습니다.

    class WeblogController < ActionController::Base
      layout :writers_and_readers
    
      def index
        # fetching posts
      end
    
      private
        def writers_and_readers
          logged_in? ? "writer_layout" : "reader_layout"
        end
    end
    

    뷰 단위의 레이아웃 분기는 액션 메서드 안에서 render :layout => 'login_layout' 이런식으로 호출로 가능합니다.

    컨트롤러/뷰 레이아웃 설정과 관련된 자세한 내용은 api문서를 참조하시면 될 것 같네요.

    http://api.rubyonrails.org/classes/ActionView/Layouts.html

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)