2016-12-01 4 views
-1

J'ai une échafaudage index.html.erb généré et je me demande si c'est correct qui n'a pas de structure HTML de base?Est-il normal que mon index.html.erb n'ait pas de structure HTML?

Ceci est mon code:

<% provide(:title, "Signing Up") %> 
<h1>Signing Up</h1> 

<div class="row"> 
    <div class="col-md-6 col-md-offset-3"> 
    <%= form_for(:reader, url: readers_path) do |f| %> 
     <%= f.label :email %><br> 
     <%= f.email_field :email, class: 'form-control' %> 
     </p> 
     <p> 
     <%= f.label :password %><br> 
     <%= f.password_field :password_digest, class: 'form-control' %> 
     </p> 
     <%= f.submit "Signing Up", class: "btn btn-primary" %> 
    <% end %> 

    </div> 
</div> 

Je ne vois pas HTML habituelle, <body>, <head> balises, etc. Puis-je ajouter ou est-il pas nécessaire?

+0

si ma réponse a aidé, marquer s'il vous plaît comme acepté en cliquant sur le coche :) –

Répondre

5

Ce n'est pas nécessaire. Dans Rails, vous disposez d'un fichier application.html.erb sous les vues/mises en page. Ceci est utilisé par défaut pour le rendu de n'importe quelle page.

Ce fichier montre la structure HTML habituelle (DOCTYPE, tête, corps, etc).

Pour trouver la disposition de base, Rails recherche un fichier au app/views/layouts portant le même nom de base que le contrôleur. Par exemple, les actions de rendu de la classe PostsController utilisent app/views/layouts/posts.html.erb.

S'il n'y a pas de disposition spécifique au contrôleur, Rails utilisera app/views/layouts/application.html.erb, ce qui se produit lorsque vous générez l'échafaudage.

C'est ce que le application.html.erb ressemble généralement sur un nouveau projet:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> 
    <%= javascript_include_tag "application", "data-turbolinks-track" => true %> 
    <%= csrf_meta_tags %> 
</head> 
<body> 

<%= yield %> #Content from the views is shown 

</body> 
</html> 

Voir la docs pour plus d'informations