2008-12-30 18 views
41

En una aplicación de rieles, ¿en qué situación utilizaría un parcial y cuándo utilizaría un helper? Encuentro ambos muy similares, ya que representan fragmentos de marcado.Cuándo utilizar Helpers en lugar de Partials

¿Hay alguna convención al respecto? ¿Cuál es la 'forma de los rieles' de usarlos?

Gracias!

Respuesta

28

Supongo que mi regla general es usar un ayudante para construir una sola "unidad" de pantalla, como un tramo que contiene un enlace, y usar un parcial para construir una unidad de visualización más compleja compuesta por más de una "unidad" de pantalla, como una grilla o un menú.

2

Uso ayudantes cuando es probable que el código se use nuevamente en otros proyectos, y parciales para código específico del proyecto.

2

Utilizo parciales como subtemplates (es decir, algo con un montón de marcado que se usa una y otra vez, como un blog publicitario), y ayudantes para mostrar más cosas lógicas (un div que solo es visible para los administradores, por ejemplo).

17

Un parcial es un fragmento de vista, una parte de una vista que es útil en varios lugares y se extrae para eliminar la duplicación. En pocas palabras, sin embargo, es que las vistas, independientes o parciales, son para presentación.

Como sabe, los controladores son para la lógica de procesamiento. Sin embargo, es inevitable que necesite algún procesamiento lógico cuando presente una vista. Entonces, por ejemplo, si tiene alguna pieza de presentación que solo está disponible para los administradores, puede extraer esa lógica a un ayudante y mantener la vista "pura" y solo de presentación. Helpers inevitablemente contendrá el código de presentación - etiquetas html y demás - pero eso es un subproducto de su uso, no su función principal.

También puede combinar los dos: un parcial para la presentación del administrador y otro para la presentación del usuario, y un asistente con la lógica para determinar cuál se representa en una situación particular.

Solo mi $ .02.

+3

Pero los rieles usan solo asistentes para la presentación (como casillas de verificación y campos de texto) –

7

Las otras respuestas representan el consenso conceptual con respecto al uso de helpers vs. parciales. Considere lo siguiente para la lectura adicional:

Basecamp dev hacer el caso para minimizar HTML en ayudantes http://37signals.com/svn/posts/1108-what-belongs-in-a-helper-method

Viget dev punto de referencia cada uno y se encontró que los ayudantes son más rápidos que los parciales http://www.viget.com/extend/helpers-vs-partials-a-performance-question/

+1

+1 para compartir excelentes enlaces de recursos –

+2

El rendimiento es similar en producción: http://bindle.me/blog/index.php/26/helpers-vs -partials-from-a-performance-perspective – sampablokuper

0

Parciales son parte de ver que puede tener un montón de código HTML junto con el código ruby. También puede usar los parciales en el controlador en el método de renderizado.

En el caso de los ayudantes, puede tener los métodos para código html corto. Puede tener algunos cálculos relacionados con los métodos que quiera usar en su archivo de vista.

Cuestiones relacionadas