Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何生成装置的ID?_Ruby On Rails_Fixtures - Fatal编程技术网

Ruby on rails 如何生成装置的ID?

Ruby on rails 如何生成装置的ID?,ruby-on-rails,fixtures,Ruby On Rails,Fixtures,我用夹具来保存我所有的测试数据 my DB中的每一行在多个rake DB:fixtures:loads上具有相同的ID 这很好,因为我可以在项目中创建文件夹,如“people/12345”,以保存模型的其他数据(文件) 我很想知道,这些生成的ID是如何在每个装置:加载时保持不变的 我假设rails将fixture标签传递给hash函数以获取ID,而不是将其存储在某处。以下是生成ID的代码: # Returns a consistent, platform-independent identifi

我用夹具来保存我所有的测试数据

my DB中的每一行在多个
rake DB:fixtures:load
s上具有相同的ID

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

我很想知道,这些生成的ID是如何在每个
装置:加载时保持不变的


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

以下是生成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