2009-06-09 221 views
0

嗨我想要有一個表的自定義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

回答

1

我不知道問題出在哪裏。當您禁用id列的auto_increment並且不要手動插入id值時,id當然是NULL。

btw:你可以定義關係的外鍵和主鍵。使用facebook_id作爲主鍵是沒有問題的。

+0

我手動插入User.create(:id => 9459405),但它並不重要,我會堅持Rails自動增量默認值,因爲我在過去有一些問題 – PanosJee 2009-06-09 11:32:32

2

使用Rails的代理自動增量ID作爲您的主要ID幾乎肯定會更容易。

第二個唯一列facebook_id並根據該字段執行所有搜索都沒有問題,但出於兼容性原因(即插件作者做出他們不應該做出的假設),我會盡量保留Rails默認值理智。與主鍵相比唯一鍵的性能問題是最小的

+1

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