Categories
├─Books Cloud services Events Standard TechTips Others
├─Software
│ ├─Mac OS Programming languages Windows Others
│ ├─Libraries
│ │ └─C C++ Java JavaScript Python Ruby Rust Others
│ └─Unix
│ └─Unix commands Others
└─Web
└─Document Service Others
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0ではfilter_parametersに:cvvと:cvcが追加された
rails new
で生成されるconfig/initializers/filter_parameter_logging.rbにおいて、 Rails 8.0でconfig.filter_parametersに:cvv
と:cvc
が追加されました。 この追加に関するプルリクエストはこちらです。セキュリティの観点からは、確かにクレジットカードのCVCとCVVをフィルタすることは適切であるように思いますので、既存アプリにおいても:cvvと:cvcを追加すると良さそうです。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0への移行におけるActive Storageのmigration
bin/rails app:update
コマンドを実行すると以下の3つのファイルがdb/migrate/
に作成されることがありますが、Active Storageをまだ使用したことがないアプリケーションでは、 これら3つのファイルは単純に削除してしまっても良いはずです。
詳しくは、「Rails 7.1への移行におけるActive Storageのmigration」のコメントをご覧ください。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
不要であればアイコン画像の削除
bin/rails app:update
コマンドを実行すると以下の2つのアイコン画像ファイルがpublic/
に作成されますが、これら2つのファイルは、
rails new
で生成される新規railsアプリ用のファイルであるため、既存アプリでは単純に削除してしまい、 従来通りのアイコン画像とアイコン設定(faviconやapple-touch-icon)を用いれば大丈夫です。 (もちろん、既存アプリにおいてアイコン設定が適切に行われている場合の話です。)より詳細な情報はrails 7.2への移行におけるアイコン画像のコメントをご覧ください。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
基本的にはRailsガイドの手順に従えば良いと思います。
ガイドの手順にもありますが、ぜひ
bin/rails app:update
コマンドを活用しましょう。rails 8.0への移行で対応が必要そうな個別の作業について、以下のコメントでそれぞれ取り上げますので、ご参考になれば幸いです。
既存のRailsアプリへのBrakemanの導入
bundle binstubs brakeman
を用いるやり方に更新しました。rails 7.2で追加されたGitHubワークフローの設定ファイルci.ymlの内容について
rails 7.2では、新規アプリに対してデフォルトでGitHubワークフローの設定ファイルであるci.ymlが生成されるようになりました。そこで、このci.ymlの内容について簡単に解説します。
なお、ci.ymlの最新のテンプレートはこちらでご覧になれます。
scan_ruby
bin/brakeman
コマンドを実行するジョブです。 Railsの一般的なセキュリティ脆弱性がないかどうかチェックします。scan_js
bin/importmap audit
コマンドを実行するジョブです。 利用しているJavaScriptパッケージにセキュリティ上の脆弱性がないかどうかチェックします。lint
bin/rubocop
コマンドを実行するジョブです。 Rubyの静的コード解析を行い設定されているルールに準拠しているかどうかチェックします。test
bin/rails test
コマンドを実行するジョブです。なお、skip_system_testオプションが無効であれば、システムテストも実行します。既存のRailsアプリへのDev Containerの導入
Rails 7.2においてDev Container設定を生成する機能が追加されました。 例えば既存アプリでは、以下のコマンドで既存アプリ用のDev Container設定を生成できるようになりました。
生成した設定は、Visual Studio Codeで利用でき、Dev Containerを利用した既存アプリの開発が可能となります。 必要となるソフトウェアのインストール等、Dev Containerでの開発を開始するための手順についてはDev Containerでの開発ガイドが参考になります。
なお、Visual Studio Code以外のエディタでもDev Containerで開発できるようにするべくDev Container CLIというツールの開発が進んでいますが、2024年12月現在では、ポートフォワーディングに対応していないなど、今のところはまだまだ開発途中のツールであり、実開発に投入するにはまだ早い段階である印象です。
Dev Container CLIはポートフォワーディングをサポートしていない
Dev Container CLIはポートフォワーディングをサポートしていないので、Dev Containerの中で動かしたWebサーバへDev Containerの外で動いているブラウザからアクセスするようなことはDev Container CLI単体では出来ないそうです。ちなみに、ポートフォワーディングを可能にする手法やツールはいくつか提案されているようです。
Dev Container CLIは開発途中でコンテナの停止や削除は未実装
公式GitHubレポジトリを見ると、2024年12月現在、以下の機能に完了のチェックマークがまだ入っていません。
devcontainer stop
- Stops containersdevcontainer down
- Stops and deletes containersWindows Terminalのコマンドは「wt」
したがって、ウインドウズキーを押してから、「wt」と打って、エンターでWindows Terminalを起動可能。
その他、引数など、コマンドラインからWindows Terminalを叩く場合の詳細は以下から。
https://learn.microsoft.com/ja-jp/windows/terminal/command-line-arguments?tabs=windows