Я пишу приложение rails, которое по своей природе НЕ МОЖЕТ требовать от пользователей регистрации, и поэтому не может использовать аутентификацию в качестве обычного средства защиты записей. (Я знаю, я знаю ...) Информация о пользователе здесь ограничена адресами электронной почты. Поэтому мне нужен способ сделать мои идентификаторы моделей непредсказуемыми, чтобы другие идентификаторы не могли быть легко угаданы. (Я знаю, я знаю ...)
Я пытался использовать плагины, такие как uuidtools, для рандомизации идентификаторов при создании записей, например:
require 'uuidtools'
class Post < ActiveRecord::Base
def before_create()
self.id = OpenSSL::Digest.SHA1.hexdigest(UUID.timestamp_create())
end
end
... Сначала это выглядит хорошо, но случаются забавные вещи. ActiveRecord иногда пытается вставить значение 0 в идентификатор, и я получаю ошибки, такие как «не могу найти сообщение с идентификатором = 0» и т. Д ...
У меня закончились идеи. Кто-нибудь может помочь? Спасибо.