patorashのブログ

方向性はまだない

WSL2 + DockerでRailsの変更を検知しないのを修正した。

表題の通りなのですが、ファイルの変更を行ってからブラウザをリロードしても変更が反映されませんでした。反映しなおすには、Railsサーバを再起動しなければならず、非常に面倒です。

調べたところ、Vagrantでの開発とかでも同様のことが起きたりしているぽかったのですが、Railsのissueに直し方が書いてありました。

github.com

config/environments/development.rbで、file_watcherを修正すればよいとのこと。

# config.file_watcher = ActiveSupport::EventedFileUpdateChecker
config.file_watcher = ActiveSupport::FileUpdateChecker

ホストOSと共有しているファイルだからか、ファイルアップデートイベントを検知できないようです。FileUpdateCheckerにすれば、変更をポーリングでチェックしているから、検知できる模様。 また、EventedFileUpdateCheckerを使わないのであれば、listen gemを削除できるらしいです。ならば、消してもいいかも…。