2010-11-20 100 views

回答

6

事情是這樣的:

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);" 
+0

這看起來像我在找什麼,謝謝。 – markquezada 2010-11-22 22:24:07

+1

您還需要在模型中添加'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

2

您可以手動設置ID保存模型前。

a = Model.new 
a.id = 8888 #from itunes 
a.save 

但是,您應該考慮一個名爲itunes_id的單獨字段而不是此方法。

+0

我正在使用一個單獨的'itunes_id'字段,如你所描述的。問題是我使用的API返回itunes ID,所以對itunes_id進行額外的查找 - >我的模型id始終是一種痛苦。 – markquezada 2010-11-22 05:40:13

+1

我真的很喜歡你說他應該怎麼做,但也提供了你的建議..最佳實踐... :) – baash05 2012-03-27 00:12:41

+0

@daveatflow這是個人意見,而不是最佳做法國際海事組織。 – 2012-08-24 15:12:06