私のRails Gemfileに新しい宝石を追加しました。gemクラスを名前空間に入れよう
Email::Client
私が今抱えている問題は、私もEmail
と呼ばれています私のレールのアプリでクラスを持っていることです。それは、このように使用されます。私はそれを初期化しようとすると、今、時々私は次のエラーを取得する:
Email.new # >> undefined method 'new' for Email:Module
おそらくEmail
ためには宝石でModule
です。この問題を解決するにはどうすればよいですか?宝石モジュールの名前空間を作る方法はありますか?私は自分のEmailクラスの名前を変更したくありません。
は '必要です:初期化子でgemfileでfalse'を、または' EmailModel = Email.dup'は役立つだろうか? https://stackoverflow.com/a/4140516/6548745 –
'require:false'は問題を遅らせるだけです。宝石は_eventually_(それ以外の理由でそれをすべて含める必要があります)、名前の衝突_then_が発生します。あなたの 'dup'プロポーザルについては不明ですが、それは何のためですか?単に 'EmailModel = Email'でエイリアスすることもできますが、それを行うと、単にモデルに行って名前を変更するだけです。 –
参照を共有するように編集しました。エイリアシングが機能する場合は、移行よりも優れていませんか? –