Nascondere codice nei templates?

Salve! Problema da super principiante: supponiamo che in un template
(richiamato a sua volta da un layout via yield) ho del codice così:

<% @lista.each_index do |i| -%>
<%= ‘[email protected][i]+’’ + h(’>> index:’)+i.to_s %>

<% end %>

Supponiamo ora che abbia scoperto che si può fare di meglio:

<% @lista.each_with_index do |item,i| -%>
<%= ‘’+item+’’ + h(’>> index:’)+i.to_s %>

<% end %>

Però mi voglio tenere la prima versione nel template, per tenerne
traccia, ma senza farla eseguire. In altre parole voglio commentarla. I
commenti html non funziano (commentano i risultati html, ma la
funzione viene eseguita), e neanche i commenti ruby #. Come faccio? Si
può?

Grazie!

Il 15/07/07, Luca R. [email protected] ha scritto:

Però mi voglio tenere la prima versione nel template, per tenerne
traccia, ma senza farla eseguire. In altre parole voglio commentarla. I
commenti html non funziano (commentano i risultati html, ma la
funzione viene eseguita), e neanche i commenti ruby #. Come faccio? Si
può?

Credo tu possa fare
<%

comment

%>
Questo perché il codice dentro le <% %> viene valutato come se fosse ruby,
quindi al suo interno il # funziona.
Poi esisterà sicuramente una soluzione migliore :).

Grazie!

di niente!
Matteo

On 7/15/07, Luca R. [email protected] wrote:

<% @lista.each_with_index do |item,i| -%>
<%= ‘’+item+’’ + h(’>> index:’)+i.to_s %>

<% end %>

Però mi voglio tenere la prima versione nel template, per tenerne
traccia, ma senza farla eseguire. In altre parole voglio commentarla.

Ti basta inserire un # subito dopo il tag di apertura:

<%# @lista.each_index do |i| -%>
<%#= ‘[email protected][i]+’’ + h(’>> index:’)+i.to_s %>

<%# end %>

Oppure se si stratta di una porzione di codice più larga, puoi usare la
coppia begin/end, assicurandoti che siano entrambi all’inizio della
riga:

<%
=begin %>



<%
=end %>

Il codice all’interno di <% e %> è codice ruby, per cui puoi utilizzare i
commenti proprio come faresti in un normale programma.

Ciao,
Antonio

Grazie 1000 a tutti e 2!