1

投稿に関係するテーブルがあります

スキーマ:

id | post_id | user_id | title | content

現在、すべての列が設定され、意図したとおりに機能していますが、データベースに新しいレコードを挿入するたびに、 7384756291のような一意の ID を post_id 列に追加したいと考えています。

この機能を追加するにはどうすればよいですか? 私は簡単にランダムな ID を作成できると思いますが、問題は、レコードが挿入される前に他の ID から一意であることを確認する方法です。それ以外の場合は、新しく作成して再試行してください...

4

1 に答える 1

1

存在しなくなるまで試してみてください:

post_id = rand(10000000000)

while Model.exists?(:post_id => post_id)
  post_id = rand(10000000000)
end

Model.create(:post_id => post_id, ...)
于 2012-08-16T12:41:24.970 に答える