2013-12-17 21 views

risposta

3

ERB ha un buffer interno, che rende l'utilizzo dei blocchi un po 'più complicato, come potete vedere nell'esempio di codice.

Rails fornisce un metodo capture, che consente di acquisire una stringa all'interno di questo buffer e restituirla da un blocco.

Così il vostro aiuto sarebbe diventato il seguente:

def make_backwards 
    capture do 
    yield.reverse 
    end 
end 
+0

Molto utile Proprio per chiunque altro a venire su questo, per incorporare il blocco ceduto in un'altra stringa: ' "

\n#{capture {yield} }\n
"' – starfry

0

Si potrebbe provare a fare il ff:

Opzione 1:

<%= make_backwards { "stressed" } %> 

Opzione 2:

<%= make_backwards do %> 
    <% "stressed" %> 
<% end %> 

farmi sapere se aiuta.