2011-10-11 10 views
6

Próbuję użyć niektórych pomocników w mojej pracy resque i mam problemy. Oto, co starałem:Jak korzystać z pomocników szyn w zadaniach 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 

Muszę również zawierać pomocnika z metodą IMAGE_PATH i niestandardowych pomocnika kopalni znajduje się w module ImageHelper.

Odpowiedz

8

Dodaj nazwanego trasy w pliku config/routes.rb, a następnie wywołać ją z klasą pracy (nie ma potrzeby obejmować niczego)

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

Można również ustawić w środowisku przyjmującym domyślna od jesteś w "resque" i nie ma ustawionych parametrów http.

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

Alternatywnie można zawierać url_helpers i zrobić coś takiego w swojej klasie

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

wielka, że ​​pracował. Jednak nadal nie rozumiem, dlaczego uwzględnienie url_helpers, a następnie wywołanie user_path (user) lub cokolwiek nie działa? Muszę również dowiedzieć się, jak dołączyć pomocników zasobów rails dla ścieżki image_path i mojego własnego modułu ImageHelper, który znajduje się w normalnym folderze helperów rails. Masz pomysł, jak to zrobić? – Marc

+0

Powinien działać przez rozszerzenie url_helpers lub ImageHelper, ponieważ jesteś w metodzie klasowej, a nie w metodzie instancji, ale także inne rzeczy mogą również nie występować. – bandito

+0

Pracowałem jak czar, dzięki! – Marc

Powiązane problemy