2012-05-09 7 views
0

を掛けますか 2. 2つ(またはそれ以上)の列が同じテーブルに属していると宣言するにはどうすればよいですか?Railsの同じテーブルにbelongs_toの多くは、私はこの1つのようないくつかのテーブルが必要FKS

例:

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

あなたはmongodbとmongoidを本当に使用していますか? mongoid/mongodbではこのような移行は必要ありません。タグを修正するか、質問の枠を変更してください。 – rubish

答えて

1

あなたが他のテーブルをrefrenceしたい場合は、外部キーの概念に従ってください。そして、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);" 

希望します。

+0

Hmm ..しかしpid(partner_id)もbelongs_toユーザーでなければなりません。 "user_id"列にはできないため、問題です。 –

+1

移行に追加しないでください。主キーと同様に、その外部キーに対して別のalterコマンドを実行します。 – Vik

+1

これをチェック:http://stackoverflow.com/questions/2166613/multiple-foreign-keys-referencing-the-same-table-in-ror – Vik

関連する問題