Help us understand the problem. What is going on with this article?

【初心者必見】RailsアプリをHerokuに公開するのにrails_12factorは不要

表題の通りの記事です。

RailsアプリケーションをHerokuにデプロイする方法を説明した記事では、よくrails_12factor gemのインストールが手順に含まれていることがあります。
ですが、このgemはRails 5以降では不要になっています。

Gemfile
group :production do
  # Rails 5以降ではrails_12factorは不要!!
  gem 'rails_12factor'
end

Rails 5がリリースされたのは2016年で、もう4年以上の月日が経っています。
Rails 6が最新版となっている2020年現在では、わざわざRails 4以前のRailsアプリを新たにデプロイしようとする人はごくわずかでしょう。
よって、このgemのインストールが必要な場面はもはやないと断言できます。

今のところ、Rails 5以降でこのgemをインストールしても問題は起きないようですが、最終リリース日が2014年10月14日になっていることから、gemのメンテナンスはすでに止まっていることが想像されます。(参考

Screen Shot 2020-11-14 at 14.42.11.png

メンテナンスが止まっているので、今は問題が起きなくても、将来的にこのgemを使い続けることで、何か問題が発生する可能性も否定できません。
損することはあっても得することはないので、さっさとアンインストールすることをお勧めします。

余談:手軽な情報源よりも信頼できる情報源を

ここから下は余談です。

個人的な観測範囲では、rails_12factor gemのインストールを手順に含めた記事を書いている人は、プログラミング初心者が多い気がします。
そして、これも僕個人の推測ですが、そういう人はネットで見つけた日本語の記事を参考にして、Herokuのデプロイ手順を再生産している気がします。

こうなると、親ガメが子ガメを生み、子ガメが孫ガメを生み、孫ガメが・・・というように、どんどん古い内容の記事が再生産されていってしまいます。

たしかに、「ググって見つけた日本語の記事」を参考にするのはラクです。
ラクですが、その記事が正確で信頼できる情報とは限りません。
記事が書かれた当時は正しくても、時間が経った現在では使い物にならない情報になっている可能性もあります。

では、正確で信頼できる情報源は何でしょうか?
それは言語やライブラリ、プラットフォームの公式情報です。

Herokuへのデプロイ手順であれば、Heroku自身が公開している以下の記事がそれにあたります。
Herokuへのデプロイ手順を知りたいのであれば、この記事を一番に参照すべきです。

Getting Started on Heroku with Rails 6.x | Heroku Dev Center

この記事の中では、「 rails_12factor はもういらない」ということがハッキリと明記されています。

Previous versions of Rails required you to add a gem to your project rails_12factor to enable static asset serving and logging on Heroku. If you are deploying a new application, this gem is not needed.

(筆者訳)

Railsの以前のバージョンではHeroku上で静的なアセットとロギングを有効化するために rails_12factor gemを追加する必要がありました。新しいアプリケーションをデプロイする場合、このgemは必要ありません。

英語を読むのは大変かもしれませんが、これからエンジニアを目指す初心者のみなさんはこの先英語を避けて通れません。
プロのエンジニアを目指すなら「読むのはラクだけど不正確な情報」よりも、「多少しんどくても正確で信頼できる情報(=多くの場合英語の公式情報)」を参照するようにしましょう。

rails_12factor gemをインストールしたぐらいであれば大きな問題は起きませんが、この先もしかすると不正確な情報を参考にしてしまったために、セキュリティ上の大きな不具合を抱えたアプリケーションを作ってしまうかもしれません。
そういった大きなミスを犯す前に、今から信頼できる情報源を参照するクセを付けることを強くお勧めします。

jnchito
SIer、社内SEを経て、ソニックガーデンに合流したプログラマ。 「プロを目指す人のためのRuby入門」の著者。 http://gihyo.jp/book/2017/978-4-7741-9397-7 および「Everyday Rails - RSpecによるRailsテスト入門」の翻訳者。 https://leanpub.com/everydayrailsrspec-jp
https://blog.jnito.com/
sonicgarden
「お客様に無駄遣いをさせない受託開発」と「習慣を変えるソフトウェアのサービス」に取り組んでいるソフトウェア企業
http://www.sonicgarden.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away