2011-09-18 12 views

Respuesta

9

Puede colocar helper en su carpeta lib e incluirlas en cualquier parte. De esta manera: lib/some_helper.rb

module SomeHelper 
    def somedef 
    #your code there 
    end 
end 
+0

debe ser 'module' (en minúsculas)? –

+0

seguro. ¡fijo! (15 símbolos) – railscard

6

Si necesita el ayudante en un método de la clase que había necesidad de que extend, no include ella.

module TalkHelper 
    def woo; 'hoo' end 
end 

class MyClass 
    extend TalkHelper 

    def self.boo; woo end 
end 

MyClass.boo #=> 'hoo' 

Sólo tenga cuidado con los ayudantes fuera del contexto vista, como ayudantes pueden depender de controller, o alguna otra cosa por el contexto de una solicitud, que no estará disponible en su modelo.

41

En su modelo, se puede hacer algo como lo siguiente:

ApplicationController.helpers.your_helper_method 

O

YourController.helpers.your_helper_method 

El mejor solución es refactorizar su código de manera que no es necesario llamar a ver el código auxiliar de todos los modelos. No es el camino RoR. Como otros señalan, puedes extraer el código auxiliar en la carpeta lib.

Ver este para obtener más información:

http://railscasts.com/episodes/132-helpers-outside-views

+0

Terminé siguiendo sus consejos y refractando mi código para no tener que usar el método de ayuda en el modelo. – LanguagesNamedAfterCofee

Cuestiones relacionadas