我希望能够为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