2016-03-03 42 views
1

我有一個名爲content_roles的「contents」和「roles」的連接表,這是連接表。創建連接表時,是否需要在單個表中創建外鍵聲明?

class CreateContentRoles < ActiveRecord::Migration 
    def change 
    create_table :content_roles, :id => false do |t| 
     t.belongs_to :content, foreign_key: "content_id" 
     t.belongs_to :roles, foreign_key: "role_id" 
    end 
    add_index :content_roles, ["content_id", "roles_id"] 
    end 
end 

所以在個人的角色和內容遷移,做我需要回指向連接表和/或角色/內容的foreign_key?對不起,我沒有更好地解釋這一點。

回答

0

contentroles表中的id列用作外鍵。 Rails加入了contentcontent_roles表格,使用idcontent表格和content_idcontent_roles表格。 rolescontent_roles表也是如此。

+0

謝謝,Dharam。 – Charlie123

1

你爲什麼不能使用引用如下圖所示

class CreateContentRoles < ActiveRecord::Migration 
def change 
    create_table :content_roles, :id => false do |t| 
    t.references :content, index: true, foreign_key: true 
    t.references :roles, index: true, foreign_key: true 

    t.timestamps null: false 
    end 
end 
end 
+0

謝謝,Hemanth。這看起來很緊湊。我可以使用它。我在rails上學習ruby,我看到這個視頻https://youtu.be/bkMbjMQBuZc @ 2:00,視頻就是這樣展示的。 – Charlie123