バックグラウンド
次のファイル構造があります。
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::PromotionExpire
new_subscription_from_promo
- これは本番環境でのみ発生します (自動ロード パス?)
CodePenSubscription
このイディオムを他の場所で使用しているため、他の場所では発生しないのはなぜですか。