【Ruby on Rails】ソースコードの変更が反映されないときの対処法

 

こんにちは、ばっしー(@issyu_39)です。

 

Ruby on Rails の勉強中に突然ソースコードの変更が反映されない現象が発生したので、そのとき行った対処法について記録しておきたいと思います。

 

開発環境

 

ruby 2.4.4

rails 5.2.0

 

起こったこと

 

ソースコードを変更してrubyコマンドで実行を行うと、変更が実行結果に全く反映されない。

 

対処法

 

Rubyのconfigファイルのdevelopment.rbを以下のように変更します。

対処法としては2パターンあります。

 

 

変更するdevelopment.rbというconfigファイルは

 

C:\Ruby24\lib\ruby\gems\2.4.0\gems\railties-5.2.0\lib\rails\generators\rails\app\templates\config\environments

 

というディレクトリにあります。

 

 

どちらのパターンでも、変更後に再起動するとソースコードの変更が実行結果に反映されるはずです。

 

一つ目のパターンでうまくはいきますが、毎回すべてのクラスを読み込むためやや処理に時間がかかるというデメリットもあります。

 

なので二つ目のパターンが解決策としては適していると思われます。

 

原因

 

config.chache_classesはアクセスのたびにアプリケーションクラスのリロードをするかしないかの設定を行い、値がfalseの時にリロードをする設定となります。

 

config.reload_classes_only_on_changeはファイル変更検知の設定を行うフラグです。

依存関係のあるファイルが変更された場合にのみクラスを再読み込みするかどうかを指定します。

 

この項目はデフォルトでは記載されていなかったのですが、これが原因でファイルの変更が検知されずクラスの再読み込みが行われなかったため、ソースコードの変更が反映されなかったのだと思われます。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

所持金数万円で家出→大学院中退→組み込みエンジニア1年目 週末ブロガー。フォトグラファー。 Webエンジニア目指して勉強中。 C/Ruby/Rails/PHP/Python/HTML/CSS/WordPress/IoT/語学