ruby-on-rails - form_with - select rails helper
Cuándo usar Helpers en lugar de Partials (6)
En una aplicación de rieles, ¿en qué situación usaría un parcial y cuándo usaría un ayudante? Encuentro ambos muy similares, ya que representan fragmentos de marcado.
¿Hay una convención alrededor de esto? ¿Cuál es la ''forma de los rieles'' de usarlos?
¡Gracias!
Creo que mi regla de oro 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 cuadrícula o un menú.
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 resumen, sin embargo, es que las vistas, independientes o parciales, son para presentación.
Como sabe, los controladores son para procesar la lógica. 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.
Utilizo ayudantes cuando es probable que el código se use nuevamente en otros proyectos y parciales para el código específico del proyecto.
Utilizo parciales como subtemplates (es decir, algo con mucho markup 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).
Las otras respuestas representan el consenso conceptual con respecto al uso de ayudantes vs. parciales. Considere lo siguiente para leer más:
El desarrollador de Basecamp defiende la minimización del HTML en los ayudantes http://37signals.com/svn/posts/1108-what-belongs-in-a-helper-method
Viget dev comparó cada uno y descubrió que los helpers son más rápidos que los parciales http://www.viget.com/extend/helpers-vs-partials-a-performance-question/
Los parciales son la parte de la vista 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 métodos para una breve porción de código html. Puede tener algunos cálculos relacionados con los métodos que quiera usar en su archivo de vista.