1

バックグラウンド

次のファイル構造があります。

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

問題

本番環境のみ、例外が発生しました

NameE​rror:​ unin​itial​ized ​const​ant P​aymen​t::Pr​omo::​Promo​tionE​xpire

これを修正するために、モジュール階層のルートから見るように ruby​​ に指示するinに変更Promo::PromotionExpireしました。しかし、その理由はわかりません::Promo::PromotionExpirenew_subscription_from_promo

  1. これは本番環境でのみ発生します (自動ロード パス?)
  2. CodePenSubscriptionこのイディオムを他の場所で使用しているため、他の場所では発生しないのはなぜですか。
4

0 に答える 0