1. ホーム
  2. ruby-on-rails

[解決済み] アクションの1つをレイアウトオフにする

2023-07-03 19:08:51

質問

私の状況 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