2011-10-11 32 views
6

Tôi đang cố gắng sử dụng một số người trợ giúp trong công việc bán lại của mình và đang gặp sự cố. Dưới đây là những gì tôi đã thử:Tôi làm cách nào để sử dụng những người trợ giúp đường ray trong các công việc bán lại?

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 

Tôi cũng cần bao gồm trình trợ giúp với phương pháp image_path và trình trợ giúp tùy chỉnh của tôi trong mô-đun ImageHelper.

Trả lời

8

Thêm một tuyến đường có tên trong config/tập tin routes.rb của bạn và sau đó gọi nó từ lớp công việc của bạn (không cần phải bao gồm mọi thứ)

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

Bạn cũng phải đặt trong môi trường của bạn máy chủ mặc định từ bạn đang ở trong 'resque' và không có tham số http nào được đặt.

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

Hoặc bạn có thể bao gồm các url_helpers và làm điều gì đó như thế này trong lớp học của bạn

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

lớn mà làm việc. Tuy nhiên tôi vẫn không hiểu tại sao bao gồm các url_helpers và sau đó gọi user_path (người dùng) hoặc bất cứ điều gì không hoạt động? Ngoài ra, tôi cần tìm ra cách bao gồm các trình trợ giúp tài sản đường ray cho image_path và mô-đun ImageHelper của riêng tôi trong thư mục trình trợ giúp đường ray bình thường. Có ý tưởng nào để làm việc này không? – Marc

+0

Nó sẽ hoạt động bằng cách mở rộng url_helpers hoặc ImageHelper của bạn vì bạn đang ở trong một phương thức lớp không phải là một phương thức thể hiện nhưng sau đó những thứ khác cũng có thể bị thiếu. – bandito

+0

Làm việc như một say mê, cảm ơn! – Marc

Các vấn đề liên quan