2010-07-26 5 views
2

Ok, donc j'ai un petit projet avec deux échafaudages différents que j'ai fait. Dans le répertoire layouts, il y a deux fichiers layout.html.erb différents.Créer une vue "mise en page principale" dans Rails?

Ma question est de savoir comment condenser ceci en un seul fichier de mise en page principal que partagent les deux vues échafaudées. Fondamentalement, mon but pour ce faire est de sorte que je dois seulement avoir ma barre de navigation et l'en-tête et d'autres choses de ce genre en un seul endroit. Si vous nommez le fichier de mise en page application.html.erb, il s'agira du fichier de mise en page par défaut.

Répondre

5

Si vous spécifiez un fichier de mise en page par le même nom de votre contrôleur, cela remplacera la mise en page par défaut.

De Rails Guides:

Pour trouver la configuration actuelle, Rails recherche d'abord un fichier dans app/vues/mises en page avec la même base nom que le contrôleur. Par exemple, les actions de rendu de la classe PhotosController utiliseront app/views/layouts/photos.html.erb (ou app/views/layouts/photos.builder). Si n'existe pas de disposition spécifique au contrôleur, Rails utilisera app/views/layouts/application.html.erb ou app/views/layouts/application.builder. S'il n'y a pas de disposition .erb, Rails utilisera une mise en page .builder, s'il y en a une. Rails propose également plusieurs façons de d'affecter plus précisément des dispositions spécifiques aux différents contrôleurs et actions.

source: http://guides.rails.info/layouts_and_rendering.html

EDIT:

Je dois ajouter que vous pouvez spécifier une mise en page pour être votre défaut dans le contrôleur d'application:

class ApplicationController < ActionController::Base 
    layout 'some_layout_name' 
end 

Et qui remplacera la correspondance de nom que les rails font automatiquement.

J'espère que cela aide!

+0

Merci! bien sûr avec des rails, il est tout au sujet de la convention lol – Earlz

0

Vous pouvez avoir un application.html.erb dans votre répertoire dispositions qui seront partagés par toutes les vues

Questions connexes