RailsのActiveJob内から*_urlヘルパーを呼ぶ方法です。
どんなときに使う?
Jobから何かしらのAPIにアクセスして、そのパラメータにcallbackアドレスを設定する場合など
やり方
- url_helpersをinclude
- default_url_optionsをoverride(これをしないとhost名がわからないよって怒られる)
- お好みでBaseJobを作ってそれを継承する形でHogeJobを作成する
# app/jobs/base_job.rb class BaseJob < ActiveJob::Base include Rails.application.routes.url_helpers protected def default_url_options { host: ENV['HOST_NAME'] } end end
# app/jobs/hoge_job.rb class HogeJob < BaseJob queue_as :default def perform(*args) # something # foobar_urlが呼べる end end