2010-08-17 26 views
2

我使用灯具来保存我拥有的所有测试数据。如何生成灯具的ID?

我的DB中的每一行在几个rake db:fixtures:load之间都有相同的ID。

这很好,因为我可以在项目中创建文件夹,例如“people/12345”来容纳模型的其他数据(文件)。

我很想知道,这些生成的ID如何在每个fixtures:load处保持不变?

我想,轨道将夹具标签传递给哈希函数以获取ID,而不是将其存储在某处。

回答

3

这里是生成的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 

你可能已经猜到label是在灯具中使用的标签,如:对YAML夹具:

matz: 
    first_name: Yukihiro 
    last_name: Matsumoto 


# ID would be: 
1520334085