Rails アプリのすべてのビューにヘッダーとフッターを追加する標準的な方法は何ですか?
5 に答える
このファイルが見つかった場合は、それが使用されます。
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にあるアプリケーション レイアウトにヘッダーとフッターを配置します。最初にこのファイルを作成する必要がある場合があります。
すべてのページに「ボイラープレート」コードを追加するには、レイアウト ファイルを使用します。通常は app/views/layouts/ にあります。
他の Rails ビューと同じようにページを作成します。一般に、繰り返しを避けるために、、、などのタグをレイアウト内に配置することを<html>
お勧めします。body
個々のビューのコンテンツを表示する場所に、<% yield %>
タグを挿入します。Ruby のブロック構文と Rails がレイアウトを実装する方法により、これにより、コントローラーがこのレイアウトを指定するすべてのビューが、すべてのレイアウトを「継承」し、ページ固有のコンテンツのみを挿入できるようになります。
レイアウトをグローバルに使用するには、ファイルに application.html.erb という名前を付けるか、render :layout オプションを指定します。
アプリのレイアウト ファイルは にありapp/views/layouts/
ます。
x1a4が言ったように、共通のレイアウト「app/views/layouts/.html.erb」を作成します。その中にヘッダーとフッターを作成できます
必要に応じて、それを 2 つのパーシャルとして作成し、レイアウト ファイル内で呼び出すことができます。ただし、レイアウトが 1 つしかない場合は、これは必要ないかもしれません
ヘッダーとフッターをパーシャルに含めることは、レイアウト タイプが 2 ~ 3 ある場合 (通常のユーザー、管理者などの場合など) に意味があります。
クラス宣言の直後のコントローラーで
class UsersController < ApplicationController layout 'レイアウト名' end
乾杯、sameera