バックグラウンド
次のファイル構造があります。
app/services/promo/promotion_expire.rb
app/services/payment/code_pen_subscription.rb
および以下で定義されるモジュール/クラス。
Promotion_expire.rb
module Promo
  class PromotionExpire
  end
end
code_pen_subscription.rb
module Payment
  class CodePenSubscription
    def new_suscription_from_promo
       ##stuff
       Promo::PromotionExpire.new.expire_single(@user, true)
       ##/stuff
    end
  end
end
問題
本番環境のみ、例外が発生しました
NameError: uninitialized constant Payment::Promo::PromotionExpire
これを修正するために、モジュール階層のルートから見るように ruby に指示するinに変更Promo::PromotionExpireしました。しかし、その理由はわかりません::Promo::PromotionExpirenew_subscription_from_promo
- これは本番環境でのみ発生します (自動ロード パス?)
- CodePenSubscriptionこのイディオムを他の場所で使用しているため、他の場所では発生しないのはなぜですか。