如何生成灯具的ID?

时间:2010-08-17 09:52:15

标签: ruby-on-rails fixtures

我正在使用灯具来保存我拥有的所有测试数据。

我的数据库中的每一行都有几个rake db:fixtures:load的相同ID。

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

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

我认为rails将fixture标签传递给hash函数以获取ID,而不是将其存储在某处。

1 个答案:

答案 0 :(得分: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