Rails: comment ajouter un en-tête à chaque page
-
04-10-2019 - |
Question
Quelle est la façon standard d'ajouter un en-tête et pied de page à chaque point de vue dans une application Rails?
La solution
Si ce fichier est trouvé, il sera utilisé.
app / views / layouts / application.html.erb
<!doctype html>
<html>
<head>
<!-- stuff -->
</head>
<body>
<!-- this is where content will be rendered -->
<%= yield %>
</body>
</html>
Dans le cas contraire, vous pouvez appeler un autre.
# app/controllers/birds_controller.rb
class BirdsController < ApplicationController
layout :birds # looks for app/views/layouts/birds.html.erb
# ...
end
Autres conseils
mettre l'en-tête et pied de page dans la mise en page de l'application qui se trouve à app / views / layouts / application.html.erb .Vous pouvez avoir à créer ce fichier en premier.
Pour ajouter un code « boilerplate » à toutes les pages, utilisez un fichier de mise en page. Il se trouve généralement dans app / views / layouts /.
Créer la page comme vous le feriez avec tout autre point de vue Rails. En général, il est une bonne idée de placer le <html>
, body
, etc balises à l'intérieur de la mise en page pour éviter la répétition.
Dans l'emplacement où vous voulez que le contenu de vues à comparaître, mettre dans une balise <% yield %>
. En raison de la syntaxe du bloc de Ruby et la façon dont Rails met en œuvre mises en page, cela permettra une vue dont le contrôleur précise cette disposition à « inherit » tous la mise en page et insérez seulement le contenu spécifique à la page.
Pour utiliser la mise en page à l'échelle mondiale, le nom du fichier application.html.erb ou spécifier le rendu. Option mise en page
Vous trouverez votre fichiers de mise en page d'application dans app/views/layouts/
.
créer une mise en page commune 'app / views / layouts / .html.erb' comme dit x1a4. Et à l'intérieur que vous pouvez créer votre tête et pied de page
Si vous voulez, vous pouvez faire ce que deux et partials appel à l'intérieur du fichier de mise en page. Mais si vous avez une seule mise en page peut-être pas besoin de ce
ayant en-tête et pied de page dans un sens si partials vous avez 2-3 types de mise en page (comme pour les utilisateurs normaux, les administrateurs etc ...)
et dans vos contrôleurs juste après la déclaration de classe
classe UsersController acclamations,
sameera