2011-06-09 20 views
5

Tengo dos archivos auxiliares diferentes (photos_helper & comments_helper) con un método llamado actions_for. ¿Cómo puedo llamar explícitamente el método de ayuda que necesito? Sé que podría cambiar el nombre de uno de ellos, pero preferiría mantenerlos igual. Intenté PhotosHelper::actions_for pero eso no parece funcionar.Multiple Rails Helpers con el mismo nombre de método

Respuesta

7

En Rails 3 todos los helpers están siempre (en Rails 3.1 existe un parche para permitir selectivamente ayudantes de nuevo) incluidos. Lo que está sucediendo detrás de las escenas:

class YourView 
    include ApplicationHelper 
    include UserHelper 
    include ProjectHelper 

    ... 
end 

Así que dependiendo de los rieles de orden ellos incluye, ninguna de sus actions_for métodos se utilizarán. No hay forma de que pueda elegir explícitamente uno de ellos.

Si tuviera que llamar explícitamente al ProjectHelper.action_for, también podría nombrar sus métodos project_action_for - la solución más simple.

6

hacer ambos de ellos un Class Method

module LoginsHelper 
    def self.your_method_name 
    "LoginsHelper" 
    end 
end 

Y

module UsersHelper 
    def self.your_method_name 
    "UsersHelper" 
    end 
end 

Luego, en vista

LoginsHelper.your_method_name #Gives 'LoginsHelper' 

Y

UsersHelper.your_method_name #Gives 'UsersHelper' 
+2

Sin embargo, esto no permite el acceso a ningún otro método "normal" de ActionView :: Helper como link_to, _url, image_tag dentro de allí. –

Cuestiones relacionadas