我希望能夠爲Rails模型使用自定義id(而不是自動遞增的默認值)。基本上,所有的ID都是iTunes商店ID,它們只是長整數。是否可以關閉默認的自動遞增ID並要求設置?這些ID也將用作其他型號的外鍵。自定義非自動遞增ActiveRecord「ID」列可能嗎?
回答
事情是這樣的:
create_table :blah, {:id => false} do |t|
t.int :my_custom_int_id
end
execute "ALTER TABLE blah ADD PRIMARY KEY (my_custom_int_id);"
您可以手動設置ID保存模型前。
a = Model.new
a.id = 8888 #from itunes
a.save
但是,您應該考慮一個名爲itunes_id
的單獨字段而不是此方法。
我正在使用一個單獨的'itunes_id'字段,如你所描述的。問題是我使用的API返回itunes ID,所以對itunes_id進行額外的查找 - >我的模型id始終是一種痛苦。 – markquezada 2010-11-22 05:40:13
我真的很喜歡你說他應該怎麼做,但也提供了你的建議..最佳實踐... :) – baash05 2012-03-27 00:12:41
@daveatflow這是個人意見,而不是最佳做法國際海事組織。 – 2012-08-24 15:12:06
- 1. 自動遞增用戶自定義ID
- 2. 休眠自動遞增非ID列
- 3. 自動遞增ID
- 4. 我們可以停止自動遞增的ID列嗎?
- 5. MySQL自動遞增自定義值
- 6. 自定義自動遞增串場
- 7. 自定義類型自動遞增ID codeigniter
- 8. 自定義自動遞增「ID」使用PHP和MySQL
- 9. ID不能爲空(自動遞增)
- 10. 自動遞增列ID不從1
- 11. 自動遞增ID打破序列
- 12. 的Java自動遞增ID
- 13. 自動遞增行(ID)
- 14. 更改自動遞增ID
- 15. SQL自動遞增ID
- 16. SQLite的ID自動遞增
- 17. 休眠自動遞增ID
- 18. 自動遞增患者ID
- 19. 自動遞增ID值
- 20. JsGrid - 自動遞增ID
- 21. 自動遞增列
- 22. 維護自定義自動增量列
- 23. Android MapView:自定義動畫可能嗎?
- 24. Mysql自定義自動增量ID來修復隨機ID
- 25. 如何在教義中定義自動增量id列?
- 26. 自動遞增列主鍵
- 27. 自動遞增兩列
- 28. 控制自動遞增列?
- 29. 自動遞增
- 30. 使我自己遞增的mysql id不自動增量
這看起來像我在找什麼,謝謝。 – markquezada 2010-11-22 22:24:07
您還需要在模型中添加'set_primary_key:my_custom_int_id'(Rails 3)或'self.primary_key =:my_custom_int_id'(Rails 4)。 – gregoltsov 2013-08-21 13:01:58