0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Rails]クラス名に数字を含んでいるクラスが自動で読み込まれる時と読み込まれない時

Posted at

はじめに

Railsでlibフォルダ配下に新しく作成したクラスが読み込まれなくて少しハマったので雑にメモしておく。

事前に確認したこと

  • lib配下はautoload_pathsの対象になっている(autoload_pathsとは
  • 同じ階層にある他のクラスは問題なく参照できている

結論

クラス名に数字を含む場合は単語の後ろのみ許容される。

具体例

ファイル名:abc_de9_fgh.rb
クラス名:AbcDe9Fgh
→クラスを参照できる

ファイル名:abc_de_9_fgh.rb
クラス名:AbcDe9Fgh
→NameError: uninitialized constant AbcDe9Fgh

ファイル名:abc_de_9fgh.rb
クラス名:AbcDe9fgh
→NameError: uninitialized constant AbcDe9fgh

おわりに

具体例の2つ目と3つ目のパターンだったり、ファイル名とクラス名がマッチしていなくてもrequire Rails.root.join("filepath")で読み込ませることはできるけど、Railsは自動読み込みが基本だからなんでrequireしてるんだ?ってなりそう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?