
やりたいこと
URLにidを使っていると、値を変更して他のユーザの情報が見れたり、データ数の推測ができてしまう。これを避けたい。
https:example.com/user/1/hoge
ではなく、
https:example.com/user/76a049b8-d280-49e8-917f-d7b28107c660/hoge
というようなuuidを使いたい。
動作環境
- AWS RDS for PostgreSQL10
- Rails5.2
事前準備
- RDSにて
pgcryptoを生成する
CREATE EXTENSION pgcrypto;
- 以下のようなストアドができればOK

実装
application.rbに以下を追加する
config.generators.orm = [:active_record, primary_key_type: :uuid]
データ登録
seedなどでデータ登録を行えば、uuidに値が入る。