2017-02-23 10 views
0

ほとんどのビュー(ヘッダーやフッターなど)に共通のHTMLがいくつかあるので、application.html.erbファイルに入れます。Railsはapplication.html.erbにマージせずにビューファイルから直接ページを提供します

ここで、HTMLに他の人と共通するものはほとんどないので、application.html.erbを変更してすべてのページに影響を与える代わりに、application.html.erbを含まずにビューファイルから完全にロードする方法が必要です。

答えて

1

アクションの最後にrender layout: falseを追加するか、コントローラー内のすべてのアクションに使用する場合は、コントローラーの先頭にlayout falseを追加します。

def action_name 
... 
    render layout: false 
... 
end 

あなたは何のレイアウトや他のレイアウトをレンダリングしないために多くの方法がありますhttp://guides.rubyonrails.org/layouts_and_rendering.html#options-for-render

0

はあなたのようなレイアウト偽アンコントローラのアクションを宣言する必要があります。 デフォルトでは、application.html.erbレイアウトです。

- 以下のコードでは、どのアクションにもレイアウトは呼び出されません。または、指定されたレイアウトがすべてのアクションに対して呼び出されます。

class UserController < ApplicationController 
    layout :false 
    def action 
    .. 
    end 
end 

- 以下のコードでは、特定のアクションレイアウトのみが呼び出され、他のアクションではデフォルトレイアウトが呼び出されます。

class UserController < ApplicationController 
    def action 
    .. 
    render layout :false 
    end 
end 
0

でオプションをレンダリングチェックすることができます。

+0

既存の回答を複製しています。 – Farooq

+0

@Farooqコードを明確にし、レイアウトをレンダリングするさまざまな方法を指定します – puneet18

+0

コードスニペットは実際には間違っていました。 – Farooq

関連する問題