2017-04-13 1 views
-2
uuid = Digest::SHA256.digest(SecureRandom.uuid) 
id = Base62.encode(uuid) 

pas de conversion implicite de chaîne en ligne Entieraucune conversion implicite de chaîne dans les rails encodent Entier base62

= id = Base62.encode(uuid)

+0

Bienvenue sur Stack Overflow. Veuillez lire "[ask]" et "[mcve]" avec leurs pages liées. Votre question n'est pas claire. –

+0

Quelle est votre question? – sawa

+0

merci de demander, Les gens se soucient plus comme il devrait être écrit ici, Plus que la question !! Je veux passer l'uuid à base62 mais, déjà résolu Merci –

Répondre

0

pour la chaîne passe à base62

uuid = SecureRandom.uuid.gsub("-", "").hex 
@id = uuid.base62_encode 
0

Je ne pense pas que votre code va fonctionner. Voici pourquoi:

Base62.encode(num) prend un nombre base10 et le convertit en une chaîne base62. C'est un problème pour vous en tant que:

Digest::SHA256.digest(SecureRandom.uuid) 
# => "\e\x1F\xD6yby\x02o\f)\xA2\x91\xD4\xFB\x85jd\xE0\xF7\xECtd\x8E\xA6\x9Ez\x99\xD8>\x04\nT" 

Renvoie une chaîne.

Si vous regardez le code dans la gemme base62-rb et le commentaire ci-dessus la méthode, vous pouvez le voir est à comparer une chaîne à un nombre entier, ce qui est l'erreur que je reçois lorsque je tente de reproduire ceci:

ArgumentError: comparison of String with 0 failed 

Voici est la méthode de la gemme:

# From base62-rb.rb line 8-20: 

    # Encodes base10 (decimal) number to base62 string. 
    def self.encode(num) 
    return "0" if num == 0 
    return nil if num < 0 

    str = "" 
    while num > 0 
     # prepend base62 charaters 
     str = KEYS[num % BASE] + str 
     num = num/BASE 
    end 
    str 
    end 

Tout cela est bien sûr fondé sur le fait que vous utilisez la pierre précieuse base62-rb. Alors, peut-être pourriez-vous nous donner un peu de contexte et nous dire ce que vous avez essayé?

+1

Vous mélangez des commentaires et une réponse. Si vous n'êtes pas sûr de la question, le mieux est de voter la question et de voter pour la fermer, puis d'expliquer dans un commentaire pourquoi la question a des problèmes. https://meta.stackoverflow.com/questions/256328/vote-to-close-unclear-questions-immediately-after-commenting et https://meta.stackoverflow.com/questions/260263/how-long-should- nous-attendons-pour-un-poster-pour-clarifier-une-question-avant-fermeture expliquer ceci. –