반응형
작업 중 하나에 대한 레이아웃 끄기
내 상황 : ReportsController의보기 작업은 순수한 html을 렌더링해야하지만 파일로 렌더링해서는 안됩니다 (브라우저에서보고 저장하기 위해). 따라서 렌더링을 위해 뷰 템플릿 view.html.erb를 사용하고이 작업에 대한 레이아웃을 해제해야합니다. 그러나이 컨트롤러 레이아웃의 다른 작업에서는 그대로 유지해야합니다. 다음과 같이 전체 컨트롤러에 대해서만 해제됩니다.
ReportsController < ApplicationController
layout false
그러나 그것은 잘못했습니다 :( 모든 행동에 대해 이와 같은 것을 사용하려고했습니다.
def view
@report = Report.new(params[:report])
unless @report.valid?
render :action => 'new' and return
else
render :layout => false
end
end
어떻게해야합니까?
이 시도:
ReportsController < ApplicationController
layout false
layout 'application', :except => :view
이렇게해야합니다.
def view
...
render :layout => false
end
응답 블록에서 layout: false
.
예를 들면 :
respond_to do |format|
format.html { render :layout => false } # your-action.html.erb
end
레이아웃이없는 비표준 템플릿을 얻으려면 다음을 사용할 수 있습니다.
def non_rest
render template: 'layouts/something_new', layout: false
end
참고 URL : https://stackoverflow.com/questions/2062312/turn-off-layout-for-one-of-action
반응형
'Programing' 카테고리의 다른 글
가변 개수의 인수를 printf / sprintf에 전달하는 방법 (0) | 2020.10.16 |
---|---|
MySQL에서 주별로 그룹화하는 방법은 무엇입니까? (0) | 2020.10.16 |
UIBarButtonItem : 대상 작업이 작동하지 않습니까? (0) | 2020.10.16 |
누락 된 데이터를 나타내는 데 NULL 대신 'Z'를 표준 적으로 사용합니까? (0) | 2020.10.16 |
매달린 포인터와 메모리 누수의 차이점 (0) | 2020.10.16 |