在哪里可以找到Rails作业的域设置?

时间:2019-03-06 09:23:56

标签: ruby-on-rails rails-activejob

我在Rails 5.2上 尝试通过ActiveJob发送消息。一切都很好,尽管如此,当我尝试使用helper(例如image_tag(user.avatar, class: "avatar"))为job方法中的图像创建URL时,它将URL的域设置为“ http://example.org”。

其他Rails部件使用正确的名称,但是作业似乎从配置文件中检索默认设置(我想)。

能给我一个在哪里找到线索的线索吗?还是我必须在配置中的某个地方放一个魔术线?

谢谢!

1 个答案:

答案 0 :(得分:3)

在环境配置中定义默认主机:

# config/environments/staging.rb
MyApp::Application.configure do
  # ...
  Rails.application.routes.default_url_options[:host] = 'preview.mydomain.com'
  Rails.application.routes.default_url_options[:protocol] = 'https'
  # ...
end

在您的工作类别中包括URL帮助器:

class MyJob
  include Rails.application.routes.url_helpers

  def perform(*args)
    # your image tage goes here
  end
end