Comment commentez-vous html mélangé avec du code ruby?
some text <% ... %> more text <%= ... %>
something else
<% ... %>
Dans jsp, c'est vraiment simple:, <%-- ... --%>
mais je ne trouve pas d'option concise dans les rails.
Les commentaires html simples <!-- ... -->
ne fonctionnent pas: le code ruby est toujours exécuté et crie des erreurs.
Il existe une option à utiliser if false
avec les commentaires html, mais elle est assez verbeuse, sans oublier que les IDE ne la prennent pas en charge.
Il existe également une option provenant de rubis pur, qui fonctionne étonnamment.
<%
=begin %>
... html and ruby code goes here
<%
=end %>
C'est généralement bien, sauf qu'il est verbeux, bizarre et qu'aucun des IDE ruby que je connais ne le prend en charge (oui, j'aime commenter / commenter avec une seule touche).
Je suis curieux, y a-t-il un «officiel» de faire ça dans les rails?
Merci!
la source
<%= false %>
ne fonctionnerait pas. Vous devriez essayer la solution fournie qui fonctionnerait<% if false %>
sans le signe =<%# if false %>
.Utilisez ceci pour commenter des lignes simples:
Pour plusieurs lignes, le
Ce que vous avez dit fonctionnerait.
la source
L'
=begin
approche est agaçante car:L'
<% if false %>
approche fonctionne, mais elle a l'air bizarre et ne donne à personne d'autre qui regarde votre code un indice sur vos intentions.Ma solution est la suivante:
Dans
application_helper.rb
, ajoutez une méthode pour:Ensuite, dans votre modèle de vue, vous pouvez dire:
Cela fonctionne car toute méthode Ruby peut prendre un bloc, mais ignorera silencieusement le bloc transmis si votre méthode n'inclut pas de fichier
yield
.la source
ignore
oudisable
et nous obtenons une solution entièrement sémantique:<% ignore do %>…<% end %>
la source
Pour les commentaires de bloc dans les modèles, mon éditeur de texte (Komodo) trouve cette variante de la recommandation de @ Garfield la moins désagréable:
la source
Pour commenter les balises erb, utilisez le symbole de hachage de commentaire ruby avant le signe = dans la balise d'ouverture
la source
Puisque vous pouvez utiliser
<% %>
pour mettre un bloc ruby, il peut certainement être utilisé pour y mettre des commentaires.Une solution plus simple et élégante ressemblerait à ...
la source
Après = commencer, vous n'avez pas besoin de mettre%>
la source
Juste un addendum à certaines des réponses précédentes. J'ai trouvé la solution = begin / = end la plus utile, mais par souci de beauté, je l'écris comme ceci:
Notez que puisque tout est ignoré jusqu'à ce
=end
qu'il n'y ait pas besoin de fermer la=begin
balise avec%>
ou d'ouvrir la=end
balise avec<%
(ce qui a également été souligné dans une réponse précédente)J'ai trouvé que c'était la solution la plus élégante pour complètement surpasser un bloc de code mixte rubis et html et le faire griser également dans mon éditeur, par opposition à la
<% if false %>
solution. Le seul inconvénient est que=begin
et=end
doit être placé au tout début de la ligne.la source
Utiliser un commentaire appelé HEREDOC
Avantages:
Les inconvénients:
Code:
La balise d'ouverture peut être
ou
Tout ce qui se trouve ici ne fonctionnera pas ou n'apparaîtra pas dans le navigateur
La balise de fermeture
oui, il faut 3 lignes 😟. Je ne sais pas pourquoi la balise erb d'ouverture est importante mais c'est le cas! (sauf si vous n'avez pas utilisé de balises erb dans le commentaire).
la source
Vous devez garder à l'esprit où le code est exécuté. Les commentaires de style Ruby fonctionnent car le code Ruby est exécuté sur le serveur avant d'être diffusé sur le navigateur Web. Cela explique également pourquoi les commentaires HTML ne fonctionnent pas - le Ruby a déjà été exécuté.
L'IDE que vous utilisez ne prend-il pas en charge la création de macros personnalisées pour commenter des blocs de code?
la source
Le raccourci de commentaire de bloc de Sublime Text ctrl+shift+/remarque si vous avez sélectionné du HTML normal ou une balise Erb et place le
<!---
ou en<% =begin %>
conséquence.la source
ctrl+d
pour sélectionner le début de chaque balise Erb<%
dans le bloc, puis appuyer sur, puis appuyer àctrl+shift+/
nouveau pour tout le bloc pour commenter le HTML.Vous pouvez utiliser à la fois <% if false%> et les commentaires HTML en même temps:
Les avantages sont:
Le code Ruby n'est pas exécuté
Le bloc commenté est de couleur grise dans l'IDE
L'intention est évidente pour les autres développeurs
la source
C'est le seul qui a fonctionné pour moi.
la source
J'espère que je viens de vous épater!
la source
La seule solution acceptable que j'ai jamais trouvée à ce problème épuisant était de mettre un espace dans le "<% =" pour qu'il ne soit plus enregistré en tant que code ruby, puis de commenter le bloc entier avec des commentaires html
Comme ça:
Oui, ajouter des espaces est ennuyeux. Mais c'est la moins ennuyeuse de toutes les solutions que j'ai encore vues.
la source
#
... au lieu d'envoyer ruby dans le document.