Rails迁移 - 许多belongs_to到同一个表,乘以FK

时间:2012-05-09 13:16:00

标签: ruby-on-rails ruby mongodb mongoid nosql

我需要一些像这样的表:

uid:integer
pid:integer
predesposition:integer
primary_key(uid,pid)
foreign_key(uid, user(id))
foreign_key(pid, user(id))

所以,有两个问题: 1.如何在迁移中声明多个FK? 2.如何在迁移中声明属于同一个表的两个(或更多)列?

示例:

create_table :encounters, :id => false do |t|
  t.belongs_to :user, :polymorphic => true
  t.belongs_to :user, :polymorphic => true
  t.integer :predisposition
end

1 个答案:

答案 0 :(得分:1)

如果要引用另一个表,请遵循外键的概念。并且想建议使用全表名而不是uid和pid。

create_table :table_name, {:id => false} do |t|
  t.integer :user_id
  t.integer :pid #suppose its procedures table
  t.integer :predesposition
  t.references :user
  t.references :procedure
  t.timestamps
end
execute "ALTER TABLE table_name ADD PRIMARY KEY (user_id,pid);"

希望有所帮助。