2010-02-10 7 views
16

Para los expertos en raíles me preguntaba dónde y cómo ejecutaría el mismo código para cada acción en su aplicación web. Si puede dirigirme a un artículo o proporcionar un fragmento de código corto, lo agradecería mucho.Rails ActionController Ejecutar el mismo código para cada acción

Gracias de antemano a cualquiera que pueda ayudar.

+0

¿Cada acción en un solo controlador? –

Respuesta

30

utilizar un filtro en su ApplicationController para ejecutar el código para cada acción en su aplicación . Todos sus controladores descienden de ApplicationController, por lo que poner el filtro allí asegurará que el filtro se ejecute.

class ApplicationController 
    before_filter :verify_security_token 
    def verify_security_token; puts "Run"; end; 
end 
15

Me parece que estás hablando de filters.

class MyController < ActionController::Base 
    before_filter :execute_this_for_every_action 

    def index 
    @foo = @bar 
    end 

    def new 
    @foo = @bar.to_s 
    end 

    def execute_this_for_every_action 
    @bar = :baz 
    end 
end 

Puede poner el filtro en ApplicationController, también, si desea que todos los controladores lo ejecuten.

2
  • before_filter si desea que el código para ser ejecutado "antes" de cada acción.

  • Si desea que se declare la acción cada vez que la usa, puede ponerla en ApplicationController y llamar al método en cualquier controlador.

Otro enfoque es el uso de ayudantes como:

module PersonHelper 
    def eat 
    {.. some code ..} 
    end 
end 

Y en su controlador:

class MyController < ActionController::Base 
    include PersonHelper 

    def index 
    eat 
    end 
end 
Cuestiones relacionadas