Obecnie generuję 8-znakowy pseudolosowy ciąg wielkich liter dla „A” .. „Z”:
value = ""; 8.times{value << (65 + rand(25)).chr}
ale nie wygląda na czysty i nie można go przekazać jako argumentu, ponieważ nie jest to pojedyncze stwierdzenie. Aby uzyskać ciąg „a” .. „z” plus „A” .. „Z”, zmieniłem go na:
value = ""; 8.times{value << ((rand(2)==1?65:97) + rand(25)).chr}
ale wygląda jak śmieci.
Czy ktoś ma lepszą metodę?
reset_user_password!(random_string)
gdziedef random_string; SecureRandom.urlsafe_base64(20) end
securerandom.urlsafe_base64