2011-02-17 115 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

相关问题