LoginSignup
0
0

Active Recordのカラム名としてobject_idが使えるようになった 他(This week in rails 2023-12-08)

Posted at

これはなに

Railsコミッタが連載しているThis week in Railsの内容を、簡単な補足と併せて紹介する連載です。社内slackで毎週書いていたものですがもったいない気がしてきたので公開することにしました。

引用元

今週のトピック

Active Recordのカラム名としてobject_idを使用できるようになった

Active Recordの有効なカラム名としてobject_idを使用できるようになった。
(紆余曲折あったみたい)

Time.now/DateTime.now/Date.todayが#travel_toの後にシステムのタイムゾーンで結果を返すようになった

Time.now、DateTime.now、Date.todayが、#travel_toの使用後にシステムのタイムゾーンで結果を返すように修正。

現在の#travel_toの実装にはバグがあり、引数のタイムゾーンを保持するため、すべてのスタブメソッドがそのタイムゾーンで結果を返してしまう。しかし、本来意図する動作は、これらのメソッドがシステムのタイムゾーンで結果を返すことだった。

Active StorageデータベースモデルでActive Recordのaffixを考慮する

すべてのActive Storageデータベース関連モデルがActiveRecord::Base.table_name_prefixの設定に従うようにした。

分離エンジンにActive Record::Baseテーブル名のprefixを認識させる

分離エンジンにActiveRecord::Base.table_name_prefixを組み込むように対処した。これにより、Active Storage 内を含むエンジン定義のモデルを Active Record のテーブル名プレフィックス構成に合わせることができるようになった。

field_set_tagヘルパーをfieldset_tagにエイリアスする

HTML要素との一貫性を保つために、field_set_tagヘルパーの名前をfieldset_tagに変更した。

ActiveJob::Serializers::TimeWithZoneSerializer でデシリアライズするとき、シリアライズされたタイムゾーンを保持する

ActiveSupport::TimeWithZone型の引数をデシリアライズするとき、シリアライズされたタイムゾーン情報を保持するようにした。

DATABASE_URLプロトコルをマップするためにActive Record.protocol_adapters設定を追加する

DATABASE_URL を使用する場合、URL で指定されたプロトコルを特定のデータベース・アダプタに関連付ける設定オプションを導入した。この分離により、アプリケーションは展開環境で構成されたデータベース接続の詳細から独立してアダプタを選択できるようになった。

# ENV['DATABASE_URL'] = "mysql://localhost/example_database" 
config.active_record.protocol_adapters.mysql = "trilogy" # trilogyアダプターを使ってMySQLに接続する。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0