引き続き、フィヨルドブートキャンプの課題としてSinatraを使ったメモアプリの開発に取り組んでいます。 今回の課題では作成したメモのデータの管理にDBを使わず、ファイルに読み書きしてデータを管理しなければなりません。 そこで今回は他の受講生の日報を参考にしてJSONファイルを用いたデータの管理方法をとることにしました。 JSONファイルを用いたデータの管理方法を実装するにあたって、個別のIDを用意しなければならず連番などではなく予測できないユニークな値の生成が必要になったので調べてみました。
結論
SecureRandomモジュールのuuid
メソッドを使う。
UUIDとは、全世界で2つ以上のアイテムが同じ値を持つことがない一意な識別子のこと(参照: UUID)
require 'securerandom'
でSecureRandomモジュールを読み込むuuid
メソッドで生成された値は文字列- 128 ビットによる数値で16進数が生成される
> require `securerandom` true > id = SecureRandom.uuid #=> "4ef81d22-ea5e-432f-9916-0287fd06dee1" > id #=> "4ef81d22-ea5e-432f-9916-0287fd06dee1" > id.class #=> String
uuid
以外にもSecureRandomモジュールには以下のようなメソッドが用意されている。
alphanumeric
: ランダムな英数字base64
: ランダムな Base64 文字列、何に使うのかは分からないhex
: ランダムな16進数文字列random_bytes
ランダムなバイト文字列
まとめ
今回良くなかった点として情報が多かったという理由だけでuuid
メソッドを選択して実装を進めました。
SecureRandom モジュールの他のメソッドではなくuuid
メソッドを選択した理由をちゃんと説明できないので、その点はちゃんと深堀りする必要がありそうです。