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

Posted

技术标签:

【中文标题】我在哪里可以找到 Rails 作业的域设置?【英文标题】:Where can I find domain settings for Rails jobs? 【发布时间】:2019-07-27 21:49:14 【问题描述】:

我在 Rails 5.2 上 尝试通过 ActiveJob 发送消息。一切都很好,但是当我尝试为作业方法中的图像创建一个带有帮助器(如image_tag(user.avatar, class: "avatar"))的 url 时,它将 url 的域设置为“http://example.org”。

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

你能告诉我在哪里可以找到它吗?或者也许我必须在配置中的某个地方放一条魔法线?

提前致谢!

【问题讨论】:

【参考方案1】:

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

# 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

【讨论】:

以上是关于我在哪里可以找到 Rails 作业的域设置?的主要内容,如果未能解决你的问题,请参考以下文章

我在哪里为我的图像设置缓存信息?

Ruby 如何知道在哪里可以找到所需的文件?

使用 Rails 4 和设计的活动作业

在 Ransack 上为 Rails 设置默认搜索参数

Bitbucket - 在哪里可以找到存储库 SSH 密钥?

Rails - 多个***域和单个会话/cookie