0
請不要使用默認表ID作爲表的主鍵時,如何引用表?我創建了兩個表,其中一個以電子郵件作爲主鍵,我希望將此表電子郵件作爲另一個表中的外鍵。請問我怎樣才能做到這一點?添加對錶的引用
請不要使用默認表ID作爲表的主鍵時,如何引用表?我創建了兩個表,其中一個以電子郵件作爲主鍵,我希望將此表電子郵件作爲另一個表中的外鍵。請問我怎樣才能做到這一點?添加對錶的引用
您可以創建表,電子郵件作爲主鍵是這樣的:
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
作爲外鍵 - 這可能是處理模型的更簡單的方法。
ok @ i.lavrov。感謝你的回答 –