2011-10-11 7 views
6

Estoy tratando de usar algunos ayudantes en mi trabajo de resque y estoy teniendo problemas. Esto es lo que he intentado:¿cómo uso los auxiliares de rieles en trabajos de resquebramiento?

require 'json' 

class SoulmateUserFollowing 
    tried this -> include Rails.application.routes.url_helpers 
    and this -> include ActionView::Helpers:UrlHelper 
    and this -> helper ActionView::Helpers::UrlHelper 

    @queue = :soulmate_user 

    def self.perform(user_id) 
    user = User.find(user_id) 
    url = url_for(following_user) 
    end 
end 

también necesito incluir el ayudante con el método image_path y un ayudante costumbre de mina ubicada en ImageHelper módulo.

Respuesta

8

añadir una ruta llamada en la configuración del archivo/routes.rb y luego lo llaman de su clase de trabajo (no hay necesidad de incluir cualquier cosa)

Rails.application.routes.url_helpers.following_user_url(following_user) 

También tienen que establecer en su entorno por defecto desde el host estás dentro de 'resque' y no hay parámetros http establecidos.

routes.default_url_options = {:host => "somehost.com"} 

Como alternativa se pueden incluir los url_helpers y hacer algo como esto en su clase

class SoulmateUserFollowing 
    include Rails.application.routes.url_helpers 

    @queue = :soulmate_user 

    def initialize(user_id) 
    user = User.find(user_id) 
    url = url_for(following_user) 
    end 

    def self.perform(user_id) 
    new(user_id) 
    end 
end 
+0

Grande que trabajaba. Sin embargo, todavía no entiendo por qué incluir url_helpers y luego llamar a user_path (usuario) o lo que sea que no funcione? Además, necesito averiguar cómo incluir los recursos auxiliares de los rieles para image_path y mi propio módulo ImageHelper que se encuentra en la carpeta normal rails helpers. ¿Alguna idea de cómo hacerlo? – Marc

+0

Debería funcionar extendiendo url_helpers o su ImageHelper ya que está en un método de clase, no es un método de instancia, pero también pueden faltar otras cosas. – bandito

+0

¡Funcionó como un amuleto, gracias! – Marc

Cuestiones relacionadas