Piszę aplikację szyny, która ze swej natury NIE MOŻE wymagać od użytkowników rejestracji, a zatem nie może używać uwierzytelniania jako zwykłego sposobu ochrony rekordów. (Wiem, wiem ...) Informacje użytkownika tutaj są ograniczone do adresów e-mail. Potrzebuję więc sposobu na nieprzewidywalność identyfikatorów moich modeli, aby inne identyfikatory nie mogły być łatwo odgadnięte. (Wiem, wiem ...)Jak sprawić, by identyfikatory modeli w Railsach były nieprzewidywalne i przypadkowe?
Próbowałem za pomocą wtyczek jak uuidtools do losowo identyfikatory jako rekordy są tworzone, jak w przykładzie:
require 'uuidtools'
class Post < ActiveRecord::Base
def before_create()
self.id = OpenSSL::Digest.SHA1.hexdigest(UUID.timestamp_create())
end
end
... To wygląda dobrze na początku, ale zabawny rzeczy się zdarzają. ActiveRecord czasami próbuje wstawić wartość 0 do id i otrzymuję błędy, takie jak "nie mogę znaleźć wpisu z id = 0" itd ...
Skończyły mi się pomysły. Czy ktoś może pomóc? Dzięki.
możesz użyć https://github.com/jashmenn/activeuuid ten klejnot dla twojej potrzeby –