66453


rails では、app/以下のファイルは変更すると、rails sを行わなくても自動的に再読み込みされ、結果がコンソールに反映されると思います。

ここでわからなかったのですが、lib/以下も同じ様に反映させることはできないのでしょうか、機能を切り分けて作成したファイルがlib/~~.rbとあるのですが、そちらを変更した時には結果が即座に反映されないことに気づきました。

なにかアドバイス頂けると嬉しいです、、


CC BY-SA 4.0
2020-05-09T06:18:06.410
66451
2020-05-09T07:31:42.597
40035
question
ruby-on-rails
rails lib 以下のファイルの再読み込みについて


`ActiveSupport::Dependencies.autoload_paths` に、 rails
が自動的にいい感じにクラス・モジュールを読み込むディレクトリのリストが格納されています。

rails 4 -> 5 -> 6
の間でここら辺はまた進化していたような記憶があり、今の最新版で正しい方法が何かが若干怪しいですが、少なくとも自分の手元では、以下のようにすると任意のディレクトリを
rails の autoload paths に追加できそうだ、と思っています。

`config/application.rb` にて:

[code]

    # 略
    module YourApplicationName
      class Application < Rails::Application
        # 略
    
        config.autoload_paths += ['lib']
      end
    end
    
[/code]

ただ、個人的には、 `lib` 自身を autoload_path に使うのは、規約(convention)に反している気がするので、
`lib/my_classes` など、適当にディレクトリを作成して、そのパス(この場合は `lib/my_classes`)を上記のように
autoload_paths に追記するのが良いと思います。


CC BY-SA 4.0
2020-05-09T07:31:42.597
66453
2020-05-09T07:31:42.597
754
66451
answer