微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 如何在resque作业中使用rails helpers?

我正在尝试在我的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中包含我的自定义帮助程序.

解决方法

在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

原文地址:https://www.jb51.cc/ruby/264495.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐