rails guideのconfig.cache_classes
の説明を修正してcontributeしました🙌
rails 6にversion upする中でRailsDiffを見てたら、テスト環境のconfig.cache_classes
のデフォルト値が変わっていましたが、
http://railsdiff.org/5.2.3/6.0.0
guideの説明では、test環境ではdefault値がtrue
になるという記載のままでした🤔
config.cache_classes
controls whether or not application classes and modules should be reloaded on each request. Defaults tofalse
in development mode, andtrue
in test and production modes. https://github.com/Madogiwa0124/rails/blob/730a661ad98ad4e1f3c4a972c2083a6838bdb26f/guides/source/configuring.md
そもそもrails 6でconfig.cache_classes
にどういう変更が入っていたのかを追ってみました👀
👇変更が入ったコミットがこちら
rails new
時のSpringのinstall有無によってデフォルト値が変更されるようになったようです。
<%- # railties/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt %> <%- if spring_install? -%> config.cache_classes = false <%- else -%> config.cache_classes = true <%- end -%>
Rails Guideのupgrade guideを見ると、Springがインストールされていると変更時にClassのロードが走るので、
cache_classes
をfalse
にしロードを有効にする必要があるとのことでした。
https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#spring-and-the-test-environment
cache_classes
を`truePにするとClassのロード処理が走らなくなるからSpringのリロードとバッティングして上手く動かなくなるてきな感じなんですかね? 🤔
最初は、とりあえずSpringがデフォルトでrailsにインストールされる以上、test環境のdefault値はfalse
になるとしといたほうがいいかなと思い、
rails guideを下記のように修正するのが良いのでは?ということでPRを出したのですが、
config.cache_classes
controls whether or not application classes and modules should be reloaded on each request. Defaults tofalse
in development and test modes, andtrue
in production mode.
やはりSpringのinstall有無によって分かれる旨を記載しておいたほうが良いよねというのをコミッターの方に指摘して頂いたので、最終的に下記のように修正しました🙇
config.cache_classes
controls whether or not application classes and modules should be reloaded on each request. Defaults tofalse
in development mode, andtrue
in production mode. In test mode, the default isfalse
if Spring is installed,true
otherwise.
(英語に関しては、自分の英語力がなさすぎてコミッターの方に指摘頂いた通りに治してます、ありがとうありがとうございました🙇♂️💦)
自分で使ってるOSSにcontributeして還元するのはいいことですが今回のようなガイドとか文章系の修正だと英語力が足りなすぎてかえってコストになってしまっているような気もしたので、英語力身につけたいですね😭