我正在使用Rails 5.2尝试通过ActiveJob发送消息。一切都很好,但是当我尝试使用帮助器(如image_tag(user.avatar, class: "avatar")
)为作业方法中的图像制作网址时,它将url的域设置为“http://example.org”。
其他Rails部分使用正确的名称,但作业似乎从配置文件中检索默认设置(我猜)。
你能给我一个线索在哪里找到它吗?或者也许我必须在配置中的某处放置一条魔法线?
提前致谢!
在环境配置中定义默认主机:
# 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