2013-12-17 23 views

Odpowiedz

3

ERB ma wewnętrzny bufor, co sprawia, że ​​używanie bloków jest nieco bardziej skomplikowane, jak widać w przykładzie kodu.

Rails zapewnia metodę capture, która pozwala przechwycić ciąg wewnątrz tego bufora i zwrócić go z bloku.

Więc twój pomocnik stałoby się, co następuje:

def make_backwards 
    capture do 
    yield.reverse 
    end 
end 
+0

Bardzo przydatny tylko dla nikogo innego zstępującego na to, aby osadzić dało blok w innym ciągu: '„

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

0

Można spróbować zrobić FF:

Wariant 1:

<%= make_backwards { "stressed" } %> 

Opcja 2:

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

dać mi znać, jeśli to pomaga.