2011-02-17 114 views
1

我們有一些從第三方提供的非整數唯一ID的導入數據。Rails的foreign_key是否必須是整數?

在Rails 2.2.2中,我們能夠在我們的has_many與非整數列的關係上使用:foreign_key,它工作正常。

但我們現在升級到Rails 2.3.8,它似乎強制foreign_key爲整數。有沒有人找到一種方法來使這個工作?

回答

1

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 
+0

關於有這個答案會談一個非整數的primary_key,外鍵呢?如何使用t.references和Rails創建another_table_id作爲整數?我結束了使用t.string another_table_id而不是使用t.references。 – Eduardo 2012-12-18 19:20:55

相關問題