2

我试图让我的用户将他们的自定义域 CNAME 到我托管在 Heroku 上的 Rails 应用程序中。我试图关注这篇文章,但是当我运行代码时,我的日志中出现了这个错误:

WARN: NameError: 未初始化的常量 HerokuDomainJob::Heroku

这是我在 heroku_domain_job.rb 中的代码

require 'platform-api'

class HerokuDomainJob < ApplicationJob
  queue_as :default

  def perform(domain, action)
    heroku = PlatformAPI.connect_oauth(ENV['HEROKU_API_KEY'])

    begin
      case action
      when "add"
        heroku.domain.create(my_app_name, "hostname" => domain)
      when "remove"
        heroku.domain.delete(my_app_name, domain)
      end

    rescue Heroku::API::Errors::RequestFailed => e
      Rails.logger.error "[Heroku Domain Worker] ERROR: #{e}"
    end
  end

end

这是我的用户模型中的代码

class User < ApplicationRecord
  after_save :update_heroku_domains
  ...
  private

  def update_heroku_domains
    if self.domain_changed? && self.domain_was.present?
      HerokuDomainJob.perform_later(self.domain_was, "remove")
    end
    HerokuDomainJob.perform_later(self.domain, "add")
  end

end

本质上,代码与文章中的代码几乎相同,所以我真的不明白我哪里弄错了。感谢任何帮助。

谢谢你。

4

0 回答 0