2009-11-15 22 views
23

A veces es más conveniente imprimir en < %%>. ¿Cómo hacerlo en Rails?Imprimir en ERB sin <% =?

+3

¿Por qué es más conveniente? –

+0

@JohnTopley Un bucle que solo llama a muchos otros parciales. – lulalala

Respuesta

4

erb tiene dos métodos para evaluar las expresiones ruby ​​en línea. El <% que evalúa la expresión y el <%= que evalúa e imprime. No hay un objeto global para imprimir dentro del contexto vinculante.

Según lo mencionado por Omar, hay un concat método, que es parte de ActionView. Esto hará lo que quieras.

A diferencia de un escape de lenguaje de scripting, no hay salida predeterminada para erb. Como erb es simplemente una función, y dada una plantilla y el enlace devolverá una variable, devuelve los valores de texto y funciones recursivamente.

Existe un acalorado debate sobre la cantidad de lógica que se debe permitir en una vista, pero lo menos posible es lo que la mayoría de la gente busca. Si está poniendo más código que texto en la vista, puede considerar refaccionar su código.

7

En ERB: El <%%> significa que hay un código de Ruby aquí para ser interpretado. El <% =%> dice que muestra el código ruby, es decir, muestra/imprime el resultado.

Parece que necesita utilizar el signo extra = si desea generar en un archivo ERB estándar.

De lo contrario, podría buscar alternativas a ERB que requieren menos sintaxis, .. tal vez intente algo como HAML. http://haml-lang.com/tutorial.html

Example: 

# ERB 
<strong><%= item.title %></strong> 

# HAML 
%strong= item.title 

¿Es eso más conveniente?