Отключить макет для одного из действий

Моя ситуация: Просмотр действия ReportController должен отображать чистый html, но не как файл (просмотреть его в браузере и сохранить его после). Поэтому для рендеринга я использую view view.html.erb и я neet, чтобы отключить любые макеты для этого действия. Но в других действиях этого контроллера макеты должны оставаться нетронутыми. Работает только для всего контроллера:

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

Что мне делать?

Ответ 1

Попробуйте следующее:

ReportsController < ApplicationController
  layout false
  layout 'application', :except => :view

Ответ 3

В блоке ответа добавьте layout: false.

Например:

respond_to do |format|
  format.html { render :layout => false } # your-action.html.erb
end

Ответ 4

Если вы хотите получить нестандартный шаблон, без макета вы можете использовать:

def non_rest
  render template: 'layouts/something_new', layout: false
end