今回はmodule外のクラスを呼び出したい場合の対処法についてまとめました。タイトルで全て完結している感がありますが、例を踏まえながらみていきます。しないクラスが呼び出される以下のようなUserクラスがあり、その中にinitializeメソッドが定義されると仮定します。この場合、User.newを実行すると「module外のinitialize」が出力されます。module外のinitialize続いて、同名のクラス名を持ち一方がmoduleで囲まれているとします。そのmodule内でUser.newを実行するとどうなるのでしょうか。User.newendこの場合はmodule内のinitializeメソッドが実行され、「module内のinitialize」が出力されるようになります。次の項目では、このような場合にmodule外のinitializeメソッドを呼び出す方法についてみていきます。module内のinitialize【解決策】::(コロン2つ)を付けるクラス名の始めに::(コロン2つ)を付けることで、module外のクラスを呼び出すことができます。先程の例では、User.newを::User.newにすることで解決できます。module外のinitializeこのように::(コロン2つ)は、モジュールやクラス内で定義された定数名を外部から参照するときに使用されます。まとめ同名のクラス名を持ち一方がmoduleで囲まれ、module内でクラスを呼び出した場合、module内のクラスが呼び出されるクラス名の始めに::(コロン2つ)を付けることで、module外のクラスを呼び出すことができる参考ころんころんの話をしよう。モジュールの名前空間について。今回はmodule外のクラスを呼び出したい場合の対処法についてまとめました。クラスを呼び出す際に想定した挙動にならない場合は、今回の事象を疑ってみても良いかもしれません。yoshi19941117TechTechMedia【RSpec】before(:suite)/before(:all)/b...【RSpec】テスト実行時にseed_fuのテストデータが削除されてしま...Railsエンジニアちばよしはる銀座にあるヘルステック企業のRailsエンジニア。初心者から中級者向けに記事を更新しています。お酒とカレーと競馬が好き。TechTechMedia。