les rails de la page de titres
Je n'aime pas la façon rails n'titres de page par défaut (utilise juste le nom du contrôleur), donc je suis en train de travailler sur une nouvelle manière de faire de la sorte:
contrôleur d'application:
def page_title
"Default Title Here"
end
postes de contrôleur:
def page_title
"Awesome Posts"
end
application de mise en page:
<title><%=controller.page_title%></title>
Cela fonctionne bien car si je n'ai pas de page_title méthode en ce que le contrôleur, je suis en train de l'utiliser revient à la valeur par défaut dans le contrôleur de l'application. Mais si dans mon controller users je veux qu'il revienne "Inscrivez-vous" pour la "nouvelle" de l'action, mais à l'automne de retour pour toute autre action? Est-il un moyen de le faire?
Deuxièmement, quelqu'un d'autre a une autre façon de faire les titres de page dans les rails?
Vous devez vous connecter pour publier un commentaire.
Je suis en désaccord avec les autres réponses, je crois que le titre ne devrait pas être définie par l'action, mais plutôt dans la vue elle-même. Garder la logique de la vue dans la vue et le contrôleur de logique dans le contrôleur.
À l'intérieur de votre
application_helper.rb
ajouter:Puis à l'insérer dans votre
<title>
:Donc quand vous êtes dans votre point de vue, vous avez accès à toutes les variables d'instance définies dans le contrôleur, et vous pouvez le mettre là. Il maintient l'encombrement de l'appareil en tant que bien.
content_for
. Merci pour l'affichage.||
, comme suit:content_for(:title) || "Default Title"
?content_for(:title).presence || "Default Title"
-content_for
retourne nil si le contenu n'existe pasJe tiens à mettre un fourre-tout, titre par défaut dans ma mise en page qui peut être remplacée à partir d'une action par la mise en
@title
:Ensuite, vous pouvez générer un titre dans votre action:
Je voudrais faire cela:
écraser dans d'autres contrôleurs de
De votre point de vue:
Regarder Ryan Bates (ryanb de railscasts.com) chouette mise en page. Il a une méthode qui ne de ce que vous recherchez. Il est similaire à Garrett façon, qu'il déplace les valeurs par défaut dans le helper trop. Découvrez la helper.rb fichier et comment il texte du lienl'utilise.
Vous pouvez installer est comme gem (et d'utiliser les autres fonctionnalités intéressantes), ou simplement utiliser sa façon de faire. Vous avez seulement besoin de passer le titre de la valeur à
title
dans chaque vue (ou laisser tomber à la valeur par défaut) et là vous allez. Je suis avec Garrett à mettre ces choses dans la vue.Modèle de mise en page
Dans votre mise en page (p. ex.
application.html.erb
) ajouter:Modèle de Page
Dans le modèle de page que vous souhaitez un spécifier un titre à partir de: