2017-03-19 76 views
0

請不要使用默認表ID作爲表的主鍵時,如何引用表?我創建了兩個表,其中一個以電子郵件作爲主鍵,我希望將此表電子郵件作爲另一個表中的外鍵。請問我怎樣才能做到這一點?添加對錶的引用

回答

0

您可以創建表,電子郵件作爲主鍵是這樣的:

create_table :users, id: false do |t| 
    t.string :email, primary_key: true 
    t.string :name 

    t.timestamps 
end 

create_table :posts do |t| 
    t.string :title 
    t.text :body 
    t.string :user_email 

    t.timestamps 
end 

,並定義你的模型是這樣的:

class User < ActiveRecord::Base 
    self.primary_key = 'email' 
    has_many :posts, foreign_key: :user_email 
end 

class Post < ActiveRecord::Base 
    belongs_to :user, foreign_key: :user_email 
end 

這就是所有你需要做的。您也可以將id保留爲User模型的主鍵,但使用email作爲外鍵 - 這可能是處理模型的更簡單的方法。

+1

ok @ i.lavrov。感謝你的回答 –