灯具的 ID 是如何生成的?

Ant*_*nAL 3 ruby-on-rails fixtures

我正在使用固定装置来保存我拥有的所有测试数据。

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

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

我很想知道,这些生成的 ID 是如何始终保持不变的fixtures:load

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

Swa*_*and 5

以下是生成 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
Run Code Online (Sandbox Code Playgroud)

您可能已经猜到这label是夹具中使用的标签,例如:对于 YAML 夹具:

matz:
  first_name: Yukihiro
  last_name: Matsumoto


# ID would be:
1520334085
Run Code Online (Sandbox Code Playgroud)