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