私は、その性質上、ユーザーに登録を要求できないため、レコードを保護するための通常の手段として認証を使用できない Rails アプリを作成しています。(わかってる、わかってる…) ここでのユーザー情報は、メールアドレスに限られます。したがって、モデル ID を予測不能にして、他の ID を簡単に推測できないようにする方法が必要です。(分かってる...)
次のように、uuidtools などのプラグインを使用して、レコードが作成されるときに ID をランダム化しようとしました。
require 'uuidtools'
class Post < ActiveRecord::Base
def before_create()
self.id = OpenSSL::Digest.SHA1.hexdigest(UUID.timestamp_create())
end
end
...一見良さそうに見えますが、おかしなことが起こります。ActiveRecord が ID に 0 の値を挿入しようとすることがあり、「ID=0 の投稿が見つかりません」などのエラーが発生します...
アイデアが尽きた。誰でも助けることができますか?ありがとう。