2015-04-06 226 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