あまり一般性はありません。社内プロジェクト向けのメモに近いです。Rails5で動作するプロジェクトを7対応に書き直した際の記録です。
# バージョン番号を更新
gem 'rails', '~> 7.0'
gem 'mysql2', '~> 0.5'
gem 'rmagick', '~> 4.2'
gem 'rails-i18n','~> 7.0'
# 削除
# gem 'therubyracer', platforms: :ruby
# gem 'spring-watcher-listen', '~> 2.0.0'
# gem 'record_with_operator', '~>1.0'
# gem 'twitter-bootstrap-rails', '~> 3.2', '>= 3.2.2'
# 新規追加
gem 'net-smtp', '~> 0.3'
gem 'net-pop', '~> 0.1'
gem 'net-imap', '~> 0.2'
Gemfile.lockを一度削除してから、bundle install
を実行します。
config/master.key
を作成して設置します。credentials.yml.encで管理するキーがなければそのまま、secrets.ymlなどで管理されているキーがあれば、移行します。
動作しなくなっていた設定値を変更、削除。
config/test.rb
config.cache_classes = false
config/initializers/newframeworkdefaults.rb
# ActiveSupport.halt_callback_chains_on_return_false = false
config/environments/production.rb
config.assets.js_compressor = Uglifier.new(harmony: true)
config/storage.yml ActiveStorageを利用していない場合でも、これがないとエラーになることがあります。中身は空で構いません。
???
ActionView::Helpers::FormBuilder.send :include, FormErrorsHelper
以下はRails7には直接関係ないですが、DB上に絵文字も格納できるようにするための変更。
config/database.yml
encoding: utf8mb4
app/models/user.rb
has_many :role_objs, class_name: "Role"
vendorフォルダに、bootstrapとrecordwithoperatorのソースコードを直接設置して、必要な箇所でincludeして使うことにしています(もっとベターなやりかたがあるかも)。
application.js から以下を削除
//= require twitter/bootstrap
bootstrapandoverrides.css から以下を削除
=require twitter-bootstrap-static/bootstrap
=require twitter-bootstrap-static/sprites
app/helpers/application_helper.rb に追記。
require Rails.root.to_s + '/vendor/bootstrap.rb'
include BootstrapFlashHelper
public/fontsフォルダにglyphiconsのフォントファイルを設置。