Pregunta

Intentando utilizar este método (resumen de los cuales es usar self.method_name en el FunnyHelper , luego llamarlo como FunnyHelper.method_name en la vista).

Sin embargo, esto causa al menos un par de problemas: los métodos de visualización como h () y las rutas con nombre se rompen (están bien con el método de módulo def method_name pero no dentro de ningún método de clase def self.method_name ) .

Obviamente puedo evitar esto soltando def self.method_name de nuevo en def method_name ; ¿Alguien con alguna sugerencia sobre cómo puedo tener mi pastel y comerlo también?

¿Fue útil?

Solución

Si realmente quiere hacer esto, puede usar

include ActionController::UrlWriter

para acceder a sus rutas con nombre y

# h is a private method 
ActionController::Base.helpers.send :h, "<"

para otros ayudantes de vista. Pero no lo recomendaría. En mi opinión, el patrón de diseño que whiletobt sugiere aquí apesta y simplemente usaría helper: blogs a pesar de su queja de que no es explícito. Eso es cierto, más o menos ... pero Rails en general y esta parte de Rails en particular está diseñada de forma completamente "no explícita". así que tratar de luchar contra eso será más problemático de lo que vale, como lo estás descubriendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top