如何在resque作业中使用rails helpers?

时间:2011-10-11 20:58:34

标签: ruby-on-rails resque

我正在尝试在我的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

我还需要使用image_path方法包含帮助器,并在模块ImageHelper中包含我的自定义帮助器。

1 个答案:

答案 0 :(得分:8)

在config / routes.rb文件中添加命名路由,然后从您的工作类中调用它(不需要包含任何内容)

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

您还必须在您的环境中设置默认主机,因为您在“resque”内部并且没有设置http参数。

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

或者你可以在你的班级中包含url_helpers并做类似的事情

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