2010-11-20 59 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