¿Cómo configuro un método al que deseo acceder desde todos los controladores?Ruby on Rails: método Global Helper para todos los controladores
pegarse el método de application_helper sólo lo hace disponible para las vistas
¿Cómo configuro un método al que deseo acceder desde todos los controladores?Ruby on Rails: método Global Helper para todos los controladores
pegarse el método de application_helper sólo lo hace disponible para las vistas
Puede include ApplicationHelper
en sus controladores (o ApplicationController base) para hacer que los métodos de ayuda disponibles.
También puede incluir la siguiente línea en su ApplicationController para incluir todos los ayudantes:
helper :all
No incluí ApplicationHelper, pero lo que dijiste me permitió crear un shared.rb en la aplicación/controladores/ – DerNalia
meterlo en lib
. Los ayudantes están destinados a ser utilizados en las vistas; si tiene bibliotecas específicas de la aplicación (y con "bibliotecas" me refiero a cualquier código que use su aplicación, y por "específico de la aplicación" cualquier cosa que no pertenezca al vendor
), lib
es el lugar indicado.
Puede agregar el método a ApplicationController
. Todos los demás controladores de la subclase ApplicationController
, por lo que podrán llamar al método.
Querrá hacer el método protected
para que solo sea visible para las subclases y no esté disponible como una acción accesible a través de la web.
este es un gran enfoque! + 500 –
aquí es muy buen ejemplo
En los carriles 3 se puede utilizar: el objeto view_context en su controlador para acceder a métodos ayudante de vista. Por ejemplo,
class ApplicationController < ActionController::Base
def some_method
view_context.some_view_helper_method
end
end
module ApplicationHelper
def some_view_helper_method
end
end
Salida esto: http://wowkhmer.com/2011/09/09/use-view-helper-methods-in-rails-3-controller/
aquí es otro ejemplo: http://stackoverflow.com/questions/1179865/why-are-all-rails- helpers-available-to-all-views-all-the-time-is-there-a-way-t –