Simplemente otra pregunta de "por qué es así": noté que aún se puede acceder a los métodos de ayuda privada desde las vistas. ¿Porque eso? ¿Y hay alguna manera de evitar esto (por ejemplo, cuando se tienen métodos de ayuda que solo se deben llamar desde otro asistente)?¿Por qué aún se puede acceder a los métodos de ayuda privada en las vistas?
Respuesta
Los ayudantes son modules that get mixed in a las vistas. Esto significa que los métodos públicos, protegidos y privados en el asistente se convierten en métodos públicos, protegidos y privados en las vistas.
No creo que realmente pueda ocultar los métodos de ayuda de la vista. Tendría que hacer algo como tener una clase de ayuda que crea una instancia en el ayudante y luego delegar llamadas a eso; sin embargo, parece que podría ser muy rápido. :)
Los ayudantes son básicamente pequeños fragmentos de código que se pueden llamar en sus vistas para ayudar a mantener su código SECO - es decir, cualquier código que repite regularmente puede ser transferido a un ayudante.
Usar ayudantes es simple, cada controlador tiene su propio archivo auxiliar o puede escribir ayudantes en el archivo auxiliar de la aplicación si se usará en toda la aplicación.
por ejemplo - ver http://paulsturgess.co.uk/articles/49-using-helper-methods-in-ruby-on-rails
https://web.archive.org/web/20130127041747/http://paulsturgess.co.uk/articles/49-using-helper-methods-in-ruby-on-rails – danuker
- 1. ¿Dónde pongo métodos de ayuda para las vistas de ActionMailer?
- 2. Crear ayuda personalizada disponible en las vistas
- 3. ¿Pueden las Vistas MVC acceder a todos los proyectos aunque el proyecto donde se ven las vistas no los hace referencia?
- 4. Python 3.0 - los métodos dict devuelven vistas - ¿por qué?
- 5. ¿Cómo aprendo los métodos a los que se puede acceder para ciertos objetos?
- 6. ¿Se puede acceder a una variable privada a través de su dirección?
- 7. ¿Por qué solo se puede acceder a las variables finales en clase anónima?
- 8. ¿Por qué no puedo acceder a los métodos de clase privados en el objeto complementario de la clase en Scala?
- 9. Clases de reapertura de Ruby: ¿se puede acceder a los métodos anulados?
- 10. ¿Por qué los métodos auxiliares se usan frecuentemente en Javascript?
- 11. No se puede alinear las vistas
- 12. ¿Por qué no puede invocar los métodos de extensión directamente?
- 13. ¿Dónde guardo las vistas parciales (vistas) en Zend Framework, para poder acceder a todas las vistas en mi aplicación?
- 14. ¿Se puede acceder a los datos antiguos en CouchDB?
- 15. No se puede probar la funcionalidad de renderizado para los métodos de ayuda en Rspec
- 16. acceder a las propiedades de los padres y los métodos sobrescritos en PHP
- 17. ¿Por qué los métodos C++ a veces se definen dentro de las clases?
- 18. En Grails, ¿solo se puede acceder al objeto de almacenamiento flash desde los controladores y las vistas?
- 19. acceder a la memoria privada de un hilo en OpenMP
- 20. ¿Por qué UITableView llama a los métodos delegados de UIScrollView?
- 21. ¿Por qué no se permite sobrecargar los métodos dentro de los métodos (por ejemplo, cierres sobrecargados)?
- 22. ¿por qué bindAll en las vistas de backbone.js?
- 23. ¿Por qué mi motor de montaje Rails no carga los métodos de ayuda correctamente?
- 24. ¿Por qué las clases internas hacen accesibles los métodos privados?
- 25. CouchDB - Acceder a los parámetros de la querystring en las vistas
- 26. ¿Cómo se puede acceder a los contenidos de las bases de datos de Android Emulator?
- 27. ¿Por qué los literales de los números no tienen acceso a los métodos numéricos?
- 28. Argh! ¿Por qué System.Web.Mvc.HandleErrorInfo se pasa a mis vistas?
- 29. ¿Qué son los diccionarios PostScript, y cómo se puede acceder (a través de Ghostscript)?
- 30. ¿Por qué se desaprobaron la mayoría de los métodos java.util.Date?
Gracias. Y así es. :-) –