在 ActiveJob 中使用自定义 Rails 助手

Use custom Rails helper in ActiveJob

我们有一个辅助方法,可用于在视图和通过 ActiveJob 发送的 SMS 中生成 URL。

如何访问作业中的辅助方法?

module Crew::AvailableJobsHelper
  def accept_url(cleaner, occurrence)
    if some_condition_is_true
      crew_accept_job_url(cleaner_id: cleaner.id, job_id: occurrence.job.id)        
    else
      crew_accept_occurrence_url(cleaner_id: current_user.id, occurrence_id: occurrence.id)
    end
  end
end

class Crew::UnassignedAlertJob < ActiveJob::Base
  queue_as :default

  def perform
    sms_body = "Click here to accept a job: #{accept_url(cleaner, occurrence)}"
  end
end

这对我有用

ApplicationController.helpers.accept_url(cleaner, occurrence)