Open7
Rails8.0を触ってみる
非推奨 -> 削除されたものたち
Rails7からRailsを触り始めた私には使ったことのないものばかりであった、、
- config.read_encrypted_secrets
- 秘匿情報管理
- rails/console/app
- Rails ConsoleからControllerへ簡単にアクセスするもの
- rails/console/helpers
- Rails ConsoleからHelperメソッドへ簡単にアクセスするもの
- Rails::ConsoleMethods
- rails/console/{app,helpers}
Regexp.timeoutのデフォルトが1秒になった
- 正規表現のチェックに1秒以上かかるとタイムアウトになる
- Rails7.2から導入されていたっぽい
- ReDoS攻撃の対策になる!
allow_deprecated_parameters_hash_equalityを削除
- Rails7.2で非推奨になっていた
- params を通常のHashと直接比較できないようにする
form_with model: nil ができなくなった
- やったことがなかったができなくなったらしい。
- 代わりに url を持たせないとエラーが出るようになったとのこと
空要素にコンテンツを渡せないようになった
- 空要素 -> 子要素を持たない input, br などのHTMLタグたち
- HTML標準に準拠する動き
- やったことなかったのでRails7.2で試してみた
- 下記のような挙動がRails8.0からはできなくなるとのこと
Rails7.2 で試してみた結果
# このようにすると
<%= tag.br "hello" %>
# このように出力された
<br>
hello
</br>
ActiveRecordに関する非推奨な設定の削除
- config.active_record.commit_transaction_on_non_local_return
- トランザクション内で早期Returnするときにトランザクションをコミットさせる設定
- config.active_record.allow_deprecated_singular_associations_name
- 単数形のアソシエーション名を許可するための設定
- config.active_record.warn_on_records_fetched_greater_than
- 取得するレコードの数の閾値を定めて警告を出す設定
- config.active_record.sqlite3_deprecated_warning
- ActiveRecord::ConnectionAdapters::ConnectionPool#connection
- 直接コネクションを取得するメソッド
など
- 直接コネクションを取得するメソッド
アプリケーション的なところはそんなに変更が多くない。
それよりVPSにポンとデプロイする仕組みをいろいろ作ったという感じ?
- デプロイに
Kamal
- Nginxの代替としてRailsコンテナ上で動くプロキシ
Thruster
- pubsubサーバにSolid Cable
- Cacheに Solid Cache
- sidekiqの代替にsolid queue