Madogiwa Blog

主に技術系の学習メモに使っていきます。

Rails GuidesのConfiguring Rails Applicationsの項目にcontributeしました📕

rails guideのconfig.cache_classesの説明を修正してcontributeしました🙌

github.com

rails 6にversion upする中でRailsDiffを見てたら、テスト環境のconfig.cache_classesのデフォルト値が変わっていましたが、 http://railsdiff.org/5.2.3/6.0.0

guideの説明では、test環境ではdefault値がtrueになるという記載のままでした🤔

そもそもrails 6でconfig.cache_classesにどういう変更が入っていたのかを追ってみました👀

👇変更が入ったコミットがこちら

github.com

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_classesfalseにしロードを有効にする必要があるとのことでした。 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 to false in development and test modes, and true in production mode.

やはりSpringのinstall有無によって分かれる旨を記載しておいたほうが良いよねというのをコミッターの方に指摘して頂いたので、最終的に下記のように修正しました🙇‍

  • config.cache_classes controls whether or not application classes and modules should be reloaded on each request. Defaults to false in development mode, and true in production mode. In test mode, the default is false if Spring is installed, true otherwise.

(英語に関しては、自分の英語力がなさすぎてコミッターの方に指摘頂いた通りに治してます、ありがとうありがとうございました🙇‍♂️💦)

自分で使ってるOSSにcontributeして還元するのはいいことですが今回のようなガイドとか文章系の修正だと英語力が足りなすぎてかえってコストになってしまっているような気もしたので、英語力身につけたいですね😭