重複しないIDを付与したい場合の解決策
ユーザー数や投稿数などを悟られたく無い場合、
RDBMSで付与されるidとは別にidを付与する手段
①ランダム SecureRandom.uuidを使用
バージョン 4 の UUID (Universally Unique IDentifier) を生成して返します。
version 4 の UUID は全くランダムです (バージョンを除いて)。この UUID は MAC アドレスや時刻などのような意味のある情報を含みません。
controller.rb
p SecureRandom.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
p SecureRandom.uuid #=> "62936e70-1815-439b-bf89-8492855a7e6b"
②連番 Gem Sequencedを使用
コントローラーなどで指定せずとも以下の例ではスコープを渡してそのcolumn_nameに対して連番を自動的に降ってくれます。
※スタートする番号など各種カスタマイズ可能
- カラムにsequential_idというカラムを作成
- model.rbに以下記入
- あとは何も考えずレコードを生成すれば自動的に連番にしてくれます
model.rb
acts_as_sequenced scope: :column_name