2010-08-17 4 views
2

J'utilise des appareils pour contenir toutes les données de test que j'ai.Comment les ID des appareils sont-ils générés?

Chaque ligne de ma base de données a le même ID sur plusieurs rake db:fixtures:load s.

C'est bien, car je peux créer des dossiers dans le projet, comme "people/12345" pour contenir des données supplémentaires (fichiers) pour les modèles.

Je suis curieux de savoir, comment ces identifiants générés sont-ils gardés constants à chaque fixtures:load? Je suppose que les rails passent l'étiquette du luminaire à la fonction de hachage afin d'obtenir l'ID, au lieu de le stocker quelque part.

Répondre

3

Voici le code qui génère les ID:

# Returns a consistent, platform-independent identifier for +label+. 
# Identifiers are positive integers less than 2^32. 
def self.identify(label) 
    Zlib.crc32(label.to_s) % MAX_ID 
end 

Vous avez sans doute deviné que label est l'étiquette utilisée dans l'appareil, par exemple: pour la fixation YAML:

matz: 
    first_name: Yukihiro 
    last_name: Matsumoto 


# ID would be: 
1520334085 
Questions connexes