Ruby on Rails自定义ID

问题描述:

嗨我想要有一个表的自定义ID,而不是使用默认的auto_increment。那可能吗?我已经转身:id => false,后来我创建了一个t.column:id,:bigint 但是当我创建一个新记录时,id被设置为NULLRuby on Rails自定义ID

有没有办法绕过这种行为。 我可以将我的主键设置为一个字段uid(它实际上是Facebook的id),但通常它打破了我的关系通常寻找id字段

+0

对不起什么?你关闭填充值的东西,然后想绕过它没有填写数字?请稍微扩展你的问题。 – baash05 2012-03-27 00:07:26

我不知道问题出在哪里。当您禁用id列的auto_increment并且不要手动插入id值时,id当然是NULL。

btw:你可以定义关系的外键和主键。使用facebook_id作为主键是没有问题的。

+0

我手动插入User.create(:id => 9459405),但它并不重要,我会坚持Rails自动增量默认值,因为我在过去有一些问题 – PanosJee 2009-06-09 11:32:32

使用Rails的代理自动增量ID作为您的主要ID几乎肯定会更容易。

第二个唯一列facebook_id并根据该字段执行所有搜索都没有问题,但出于兼容性原因(即插件作者做出他们不应该做出的假设),我会尽量保留Rails默认值理智。与主键相比唯一键的性能问题是最小的

+1

-1不是一个答案,只是一个批评。 – baash05 2012-03-27 00:05:21