Ruby on Rails SQLite3表ID号

时间:2015-04-06 14:52:13

标签: ruby-on-rails activerecord sqlite

我正在练习“Rails:Up and Running”一书。有人写道,如果没有添加,数据库会自动填充id属性。这是一个例子。

some_items.yml:

one:
  name: stringOne

two:
  name: stringTwo

确定。现在,我正在使用“rake db:migrate”和“rake db:fixtures:load”进行迁移和加载数据。 然后我试图检查“some_items”包含哪个表。在向SQLite3控制台发送SQL查询时,我收到的输出如下:

298486374|stringTwo|2015-04-06 14:00:33|2015-04-06 14:00:33
980190962|stringOne|2015-04-06 14:00:33|2015-04-06 14:00:33

我想知道SQLite3是否用随机数填充ID?如果是这样,为什么不按正常的升序排列,如1,2,...?再次 - 如果是这样,为什么Rails不在YAML测试文件中创建ID属性以正确显示它?

1 个答案:

答案 0 :(得分:0)

  

我想知道SQLite3是否用随机数填充ID?

不,Rails正在这样做。

  

如果是这样,为什么不以正常的升序排列,如1,2,......?

我相信Rails会为夹具做到这一点,以便尽可能地保持平台独立性并保持简单。

  

再次 - 如果是这样,为什么Rails不会在YAML测试文件中创建ID属性以正确显示它?

如果您想拥有顺序ID,可以将它们放在灯具文件中:

one:
  id: 1
  name: stringOne

two:
  id: 2
  name: stringTwo