どうも、Docker環境のRails6のアプリを開発していた際のことです。
今までページをリロードするだけで、viewに記述していたソースコードの変更が反映されていましたが、突然反映されなくなってしまいました。
そこで今回はページをリロードすればソースコードの変更が反映されるようにするための方法をまとめておきます。
【Rails6・Docker】ソース変更後にページをリロードしてもveiwが更新されない時の対処法
結論
Railsアプリ内のconfig/environment/development.rbの最後の方にある
development.rb
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
を以下のように変更します。
development.rb
config.file_watcher = ActiveSupport::FileUpdateChecker #=>Eventedの記述を消す!
ちょっとした説明
ファイルの変更を感知しているのがfile_watcherという部分です。Dockerによる環境構築ではvolumeで共有ファイルとしてホスト側のディレクトリを仮想環境にマウントしており、この方式だと変更イベントが発生しないようです。
development.rbの記述変更によって、ソースコードの更新をサーバー起動中にチェックする機能に変更できるので、これでviewはもちろんcontrollerやmodelといった機能の変更も、ページのリロードで反映されるようになります。