Rails5→Rails6にバージョンアップした際に詰まった個所があります。
lib/hoge.rbというrbファイルがあったとして、同libファイル内のrbファイルを
requireする実装をしたとします。
ruby
1// hoge.rb 2require 'test1.rb' // lib/test1.rbとして存在 3require 'test2.rb' // lib/test2.rbとして存在 4require 'test3.rb' // lib/test3.rbとして存在
Rails5時代および、Rails6移行後も上記requireに関してエラーが発生する事はありませんでした。
しかし時が経ち、機能拡張の為libフォルダ内にtest4.rbを実装し、
ruby
1// hoge.rb 2require 'test1.rb' // lib/test1.rbとして存在 3require 'test2.rb' // lib/test2.rbとして存在 4require 'test3.rb' // lib/test3.rbとして存在 5+ require 'test4.rb' // lib/test4.rbとして存在
とした所、追加したrequire 'test4.rb'の行で
cannot load such file - test4.rb
とエラーになりました。勿論lib/test4.rbは存在します。
test1~3はRails5時代に実装したこともあり、Rails5時代はconfig/application.rbにautoloadの実装をしていましたが、
Rails6に移行してからはコメントアウトしています。
Ruby
1// config/application.rb 2config.load_defaults 6.0 // Rails6移行後に追加。つまりclassic化はしていない。 3config.i18n.default_locale = :ja 4# config.autoload_paths += %W(#{config.root}/lib) # Rails5時代は使用。Rails6移行後はコメントアウト
今回の現象はRails6移行の際の"ファイルloadに関する設定漏れ"に依存する事なのでしょうか?
それともそれ以外、それ以前の問題なのでしょうか?
知見のある方のご回答をお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/15 01:02