Rails/ActiveRecord で postgres_ext を使用して、UUID を PostreSQL UUID データ型として格納できるようにしています。しかし、私のアプリでは uuid を比較しており、モデルから返される UUID を小文字ではなく大文字にしたいと考えています。
UUID の大文字の文字列表現を常に返すように ActiveRecord/postgres_ext にパッチを適用するにはどうすればよいですか?
Rails/ActiveRecord で postgres_ext を使用して、UUID を PostreSQL UUID データ型として格納できるようにしています。しかし、私のアプリでは uuid を比較しており、モデルから返される UUID を小文字ではなく大文字にしたいと考えています。
UUID の大文字の文字列表現を常に返すように ActiveRecord/postgres_ext にパッチを適用するにはどうすればよいですか?
なぜこれをやりたいのかという質問がありますが...
これを行うには、ActiveRecord にパッチを適用するのが最善の方法ではない可能性があります。モデルが大文字バージョンの UUID をアプリケーションの残りの部分に返すようにしたい場合は、モデル コード自体でこれを行うことができます。こうすることで、データベース レイヤーの詳細をアプリケーションの残りの部分から分離することができます。
これを行うには、アクセサー コードをオーバーライドします。次のようになります。
def uuid
read_attribute(:uuid).upcase
end