【Rails / Sinatra】ID を UUID にする
2022/08/17
実際は Sinatra アプリでやった話だけど、Rails でもほとんど一緒だからタイトルに Rails を入れてる
ユーザーの ID を UUID にした時のメモ(デフォルトでは BigInt になっている)
手順
マイグレーションファイル
class CreateUsers < ActiveRecord::Migration[7.0]
def change
create_table :users, id: false do |t|
t.string :id, null: false, primary_key: true
t.string :name, null: false
t.timestamps
end
end
end
モデル
class User < ActiveRecord::Base
before_create -> { self.id = SecureRandom.uuid }
end
本来であれば被らない UUID が生成されるまでループした方が良さげだけど、被る確立は低そうなので端折った