53 votes

Différence entre -%> et%> dans les rails

J'ai commencé des tutoriels sur les rails et remarqué que certains des blocs de code de vue sont comme

 <h1><%= @subject.name -%></h1>
 

et d'autres blocs de code sont comme

 <h1><%= @subject.name %></h1>
 

Quelle est la différence entre -%> et%>

Si vous connaissez de bonnes références de syntaxe que vous pouvez me signaler, ce serait également utile.

84voto

zenazn Points 8373

Le tiret supplémentaire empêche ERB de sortir la nouvelle ligne après la balise de fermeture. Il n'y a pas de différence dans votre exemple, mais si vous avez quelque chose comme ça:

 <div>
  <% if true -%>
  Hi
  <% end -%>
</div>
 

Ça va produire:

 <div>
  Hi
</div>
 

et pas ceci:

 <div>

  Hi

</div>
 

5voto

gylaz Points 3129

Je suis presque sûr que - avant %> n'est plus nécessaire et devrait être laissé de côté.

Au moins dans Chrome, le code HTML généré a le même aspect avec -%> ou %> .

4voto

James Conroy-Finn Points 146

Si vous utilisez HAML plutôt que de ERB vous pouvez faire quelque chose de similaire avec une plus ou moins grande de symbole qu'après votre tag.

> va supprimer n'importe quel espace autour de votre tag et < va supprimer n'importe quel espace.

.float-left<
  %p
    Lorem ipsum dolor sit amet

est compilé:

<div class="float-left"><p>
  Lorem ipsum dolor sit amet
</p></div>

Et...

%left_tag
%inside>
%right_tag

est compilé:

<left_tag /><inside /><right_tag />

Si vous n'êtes pas à l'aide de HAML c'est certainement la peine de vérifier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X