ruby on rails - logo - Controlador helper_method
hbase (2)
para compartir métodos entre el controlador y la vista tiene varias opciones:
- use view_context http://apidock.com/rails/AbstractController/Rendering/view_context
- defínalo en el controlador y esté disponible a la vista por el método de clase helper_method http://apidock.com/rails/ActionController/Helpers/ClassMethods/helper_method
- definirlo en un módulo compartido e incluir / ampliar
Me preguntaba por qué alguien debería usar helper_method dentro de un controlador para crear un método de ayuda, en lugar de crear la forma "normal", que está dentro del archivo auxiliar. ¿Cuáles son los pros y los contras de eso?
helper_method
es útil cuando la funcionalidad es algo que se usa tanto entre el controlador como la vista. Un buen ejemplo es algo así como current_user
.
Si el método se ocupa más de la lógica del controlador y no formatea, entonces pertenece al controlador. Algo así como current_user
se compartiría entre todos los controladores, por lo que debería definirse en ApplicationController
.
Los verdaderos métodos de "ayuda" se ocupan de la vista y manejan cosas como el formato y la lógica de la plantilla. Raramente se necesitan en el controlador y pertenecen a su propio módulo bajo la aplicación / ayudantes. Puedes incluirlos en tu controlador cuando sea necesario, pero terminas con todo el módulo que vale la pena ver en los métodos de ayuda disponibles para tu controlador.