Rails:すべてのページにヘッダーを追加する方法
-
04-10-2019 - |
質問
Railsアプリのすべてのビューにヘッダーとフッターを追加する標準的な方法は何ですか?
解決
このファイルが見つかった場合、使用されます。
App/Views/layouts/application.html.erb
<!doctype html>
<html>
<head>
<!-- stuff -->
</head>
<body>
<!-- this is where content will be rendered -->
<%= yield %>
</body>
</html>
それ以外の場合は、別のものを呼び出すことができます。
# app/controllers/birds_controller.rb
class BirdsController < ApplicationController
layout :birds # looks for app/views/layouts/birds.html.erb
# ...
end
他のヒント
ヘッダーとフッターをで見つけることができるアプリケーションレイアウトに入れます App/Views/layouts/application.html.erb。最初にこのファイルを作成する必要がある場合があります。
すべてのページに「ボイラープレート」コードを追加するには、レイアウトファイルを使用します。通常、アプリ/ビュー/レイアウト/にあります。
他のRailsビューのようにページを作成します。一般的に、配置することをお勧めします <html>
, body
, 、繰り返しを避けるために、レイアウトの内部にタグを付けます。
個々のビューからコンテンツを表示したい場所で、 <% yield %>
鬼ごっこ。 Rubyのブロック構文とRailsがレイアウトを実装する方法のため、このレイアウトを指定するビューがすべてのレイアウトを「継承」し、ページ固有のコンテンツのみを挿入するために、任意のビューが可能になります。
グローバルにレイアウトを使用するには、ファイルapplication.html.erbに名前を付けるか、レンダリング:レイアウトオプションを指定します。
アプリのレイアウトファイルがあります app/views/layouts/
.
x1a4が言ったように、共通のレイアウト 'app/views/layouts/.html.erb'を作成します。そしてその中であなたはあなたのヘッダーとフッターを作成することができます
必要に応じて、それを2つの部分として作成し、レイアウトファイル内で呼び出すことができます。しかし、レイアウトが1つしかない場合は、これは必要ないかもしれません
部分的なレイアウトタイプがある場合(通常のユーザー、管理者などなど)、部分的なヘッダーとフッターを持つことは理にかなっています。
クラス宣言の直後にコントローラーで
class userstroller <アプリケーションコントローラーレイアウト 'レイアウト名'エンド
乾杯、サミーラ