Railsで適用するレイアウトを変更する

Rails の共通レイアウト用に使用されるビューファイルは、デフォルトでは views/layouts/application.html.erb になっています。特定の画面では、application.html.erb 以外のレイアウトを適用したいケースもあるのでその変更方法。昨日の Railsでビューにapplicaiton.html.erbのレイアウトを適用しない に関連するエントリーです。

スポンサーリンク

— 環境 —
Rails 4.1

views/layouts/ 以下にレイアウト用ビューを追加

まず、views/layouts/application.html.erb 以外のレイアウト用ファイルを、views/layouts 以下に作成します。今回の例では、another_layout.html.erb を追加しました。

views/layouts/another_layout.html.erb

yield の部分が、各ビューファイルの中身となります。これ書き忘れがちなので注意。

コントローラーのアクションでレイアウトを指定

コントローラーのアクション内で、使用するレイアウトを指定します。今回の場合は、views/layouts/another_layout.html.erb を指定。拡張子を除外したファイル名のみで指定します。

他のアクションのビューを流用しつつレイアウトを指定

other_action アクションのビューを使用しつつ、レイアウトに another_layout.html.erb を指定する例です。

最初各々を別々にして、render を2行に分けて書いていたらエラーで怒られました。アクション内では、render メソッドは1回しか呼べないらしい。ということで、render メソッドにハッシュ形式の引数を渡します。これでOK。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!