1
我們有一些從第三方提供的非整數唯一ID的導入數據。Rails的foreign_key是否必須是整數?
在Rails 2.2.2中,我們能夠在我們的has_many
與非整數列的關係上使用:foreign_key
,它工作正常。
但我們現在升級到Rails 2.3.8,它似乎強制foreign_key爲整數。有沒有人找到一種方法來使這個工作?
我們有一些從第三方提供的非整數唯一ID的導入數據。Rails的foreign_key是否必須是整數?
在Rails 2.2.2中,我們能夠在我們的has_many
與非整數列的關係上使用:foreign_key
,它工作正常。
但我們現在升級到Rails 2.3.8,它似乎強制foreign_key爲整數。有沒有人找到一種方法來使這個工作?
據this answer,該過程必須使用execute
完成:
create_table :employees, {:id => false} do |t|
t.string :emp_id
t.string :first_name
t.string :last_name
end
execute "ALTER TABLE employees ADD PRIMARY KEY (emp_id);"
而作爲Sean McCleary mentioned,你的ActiveRecord模型應設置主鍵使用set_primary_key
:
class Employee < ActiveRecord::Base
set_primary_key :emp_id
...
end
關於有這個答案會談一個非整數的primary_key,外鍵呢?如何使用t.references和Rails創建another_table_id作爲整數?我結束了使用t.string another_table_id而不是使用t.references。 – Eduardo 2012-12-18 19:20:55