- # Log to STDOUT by default
- config.logger = ActiveSupport::Logger.new(STDOUT)
- .tap { |logger| logger.formatter = Logger::Formatter.new }
- .then { |logger| ActiveSupport::TaggedLogging.new(logger) }
-
- # Prepend all log lines with the following tags.
+ # Log to STDOUT with the current request id as a default log tag.
config.log_tags = [ :request_id ]
+ config.logger = ActiveSupport::TaggedLogging.logger(STDOUT)
+ # Cache assets for far-future expiry since they are all digest stamped.
+ config.public_file_server.headers = { "cache-control" => "public, max-age=#{1.year.to_i}" }
# Assume all access to the app is happening through a SSL-terminating reverse proxy.
- # Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies.
- # config.assume_ssl = true
+ config.assume_ssl = true
- # Show full error reports and disable caching.
+ # Show full error reports.
config.consider_all_requests_local = true
- config.action_controller.perform_caching = false
config.cache_store = :null_store
- # Disable caching for Action Mailer templates even if Action Controller
- # caching is enabled.
- config.action_mailer.perform_caching = false
Rails 8.0の新機能に対応するRails guidesのページ
Rails 8.0で導入された新機能に関して記述しているRails guidesのページを以下にまとめました。
rails generate authentication: https://guides.rubyonrails.org/security.html#authenticationなお、Solid Cableの記述がRails guidesのどこにあるかは分かりませんでした。
ちなみに、GitHubのレポジトリは以下の通りで、そのREADME等からも情報を得られます。
Podmanを利用して、簡単にローカルでRailsガイドの編集内容を確認する方法
RailsガイドのPull Requestは編集後の生成結果を確認せずに送って良いそうですが、 送る前に確認している方に向けて、Podmanを利用して簡単にローカルでRailsガイドの編集内容を確認する方法のご紹介です。
メインとなるのは、以下の1行のコマンドです。毎回コピペしても良いのですが、長いのでエイリアスを貼ったり、PATHの通った場所にこのコマンドのシェルスクリプトを置いても良いと思います。
環境構築
必要になるのはシェルスクリプトを実行できる環境とPodmanのみです。 Podmanのインストールに関してはPodmanの公式インストールガイドをご覧ください。 ちなみにUbuntuなど多くのLinuxディストリビューションでは、aptなどの標準パッケージ管理ツールでPodmanのインストールが可能です。
Podmanを利用して、簡単にローカルでRailsガイドの編集内容を確認する具体的な方法
Podmanがインストールできていれば、以下の手順でRailsガイドの編集と確認が行えます。
/guides/source/ja内の Markdown ファイルを編集する動作不良が起きた等でgemを全て削除したいとき
ちなみに、上述の1行コマンドは
vendor/bundle/にgemをインストールします。 Rubyのバージョンが変わって動作不良が起きた際などは、rm -rf vendor/bundle/でgemを全て削除して綺麗な状態にすることが出来ます。新規リリースに伴うRailsガイドの更新の情報
Rails 8.0のリリースに伴い、Railsガイドが更新されました。更新内容は、Railsガイド公式による以下の記事をご参照ください。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるlogger
config.loggerは、Railsアプリで用いるロガーの設定です。rails newで生成されるconfig/environments/production.rbにおいて、 8.0からこの設定について以下の変更が行われました(この変更のPRその1とPRその2)。この変更により、Kamralを用いたproduction環境ではタイムスタンプが二重に表示されなくなります。既存アプリでも、production環境でタイムスタンプが二重になっている場合には、この変更を行ってタイムスタンプが1つになるようにすると良いかもしれません。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるactive_record.attributes_for_inspect
config.active_record.attributes_for_inspectは、Active Recordオブジェクトのinspectに関わる設定です。rails newで生成されるconfig/environments/production.rbにおいて、 8.0からこの設定を行う以下のコードが追加されました(この変更のPR)。このコードの追加により、production環境ではinspectの結果に基本的にidのみが含まれるようになります。この設定はproduction環境でのパフォーマンスの悪化をさけるための変更に端を発していますので、既存アプリでもこのコードを追加すると良いかもしれません。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるaction_mailer.perform_caching
config.action_mailer.perform_cachingは、メーラーテンプレートでフラグメントキャッシングを行うかどうかの設定です。rails newで生成されるconfig/environments/production.rbにおいて、 8.0からは以下のようにこの設定を行うコードが削除されました(この変更のPRとこの変更のCommit)。このキャッシングを無効にするコードの削除により、メーラーテンプレートでのフラグメントキャッシングが有効になります。既存アプリでもメーラーテンプレートでのフラグメントキャッシングを有効にしたい場合は、このコードの削除により可能です。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるsilence_healthcheck_path
config.silence_healthcheck_pathは、ログ出力を抑制すべきヘルスチェックのパスを指定する設定です。rails newで生成されるconfig/environments/production.rbにおいて、 8.0からは以下のようにこの設定を行うコードが追加されました(この変更のPRとこの変更のCommit)。ヘルスチェックでログが詰まる問題が起きている場合や見やすさなどの理由でヘルスチェックのログを抑制をしたい場合は既存アプリでも同じ設定変更、つまり、設定の追加をしても良いかもしれません。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるpublic_file_server.headersとassume_ssl
rails newで生成されるconfig/environments/production.rbにおいて、 8.0からは以下の設定2つが追加されているのですが(この変更のPRとこの変更のCommit)、 これは8.0からrails newで生成されるアプリでKamal 2対応が行われていることに起因するものです。ですので既存アプリでは、Kamal 2対応をしないのであればこれらの設定の追加はしなくても良いと思われます。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるassets.compile
config.assets.compileは、動的なSprocketsコンパイルを有効にするかどうかの設定です。rails newで生成されるconfig/environments/production.rbにおいて、 8.0からは以下のようにこの設定が削除されているのですが(この変更のPRとこの変更のCommit)、 これは8.0からrails newで生成されるアプリのアセットパイプラインのデフォルトがPropshaftになったことに起因するものです。ですので既存アプリは、Propshaftへ移行する前はこの設定は削除しない方が良いと思われます。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるaction_controller.perform_cachingとaction_mailer.perform_caching
config.action_controller.perform_cachingとconfig.action_mailer.perform_cachingは、両方ともキャッシュ機能を有効にするかどうかの設定です。rails newで生成されるconfig/environments/test.rbにおいて、 8.0からは以下のようにこれらの設定を無効にするコードが削除されました(この変更のPRとこの変更のCommit)。公式として8.0からはテスト環境ではキャッシュが効いた状態を標準とするということだと思いますので、既存アプリでも同じ設定変更、つまり、設定の削除をしても良いかもしれません。