2015-04-06 230 views
0

我正在练习“Rails:Up and Running”一书。如果没有添加,则写入数据库自身填充id属性。这是一个例子。Ruby on Rails SQLite3表ID号

some_items.yml:

one: 
    name: stringOne 

two: 
    name: stringTwo 

确定。现在,我正在使用“rake db:migrate”和“rake db:fixtures:load”进行迁移和加载数据。 然后我试图检查“some_items”包含的是什么表。尽管发送SQL查询来sqlite3的控制台我收到输出是这样的:

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属性以正确显示它?

回答

0

我在想SQLite3是用随机数填充ID的吗?

不,Rails正在这样做。

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

我相信Rails会为了灯具做到这一点,以便尽可能保持平台无关性并保持简单。

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

如果你想有序贯的ID,你可以让他们在你的灯具文件:

one: 
    id: 1 
    name: stringOne 

two: 
    id: 2 
    name: stringTwo