高木のブログ

【Sinatra / Rails】ユーザーID に ULID を使うことにした

2022/09/22

Rails でも同じなのでタイトルに追加している

Sinatra アプリでユーザーの ID に UUID を使っていたが、ULID に切り替えた

ULID は、UUID と互換性があり、ミリ秒単位で時系列ソートができる

Gem があったのでそれを使うことにした
https://github.com/rafaelsales/ulid

require 'ulid'

ULID.generate
#=> "01G9VYHMNH5YWA0B96K1Q1KBHB"

以前書いた記事(【Rails / Sinatra】ID を UUID にする) のモデルを以下のように書き換えるだけで移行完了

require 'ulid'

class User < ActiveRecord::Base
  before_create -> { self.id = ULID.generate }
end

ytkg

Written by ytkg, Twitter, GitHub