2011-10-11 15 views
6

Sto cercando di utilizzare alcuni helper nel mio lavoro resque e sto avendo problemi. Ecco quello che ho provato:come utilizzare gli helper dei binari nei lavori di resque?

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 

Ho anche bisogno di includere l'assistente con il metodo percorso_immagine e di un aiutante personalizzato di miniera situata nel modulo ImageHelper.

risposta

8

aggiungere un percorso di nome nella configurazione del file/routes.rb e poi lo chiamano dalla classe lavoro (non è necessario includere qualsiasi cosa)

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

si hanno anche per impostare nel proprio ambiente host predefinito dal sei all'interno di "resque" e non ci sono parametri http impostati.

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

In alternativa è possibile includere le url_helpers e fare qualcosa di simile nella tua classe

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 che ha funzionato. Tuttavia, ancora non capisco perché includere url_helpers e quindi chiamare user_path (utente) o quant'altro non funzioni? Inoltre, ho bisogno di capire come includere gli aiuti per le risorse delle rotaie per image_path e il mio modulo ImageHelper che si trova nella normale cartella degli aiutanti dei rails. Qualche idea di come farlo? – Marc

+0

Dovrebbe funzionare estendendo url_helpers o il tuo ImageHelper poiché sei in un metodo di classe non un metodo di istanza, ma potrebbero anche mancare altre cose. – bandito

+0

Ha funzionato come un incantesimo, grazie! – Marc

Problemi correlati