2017-03-19 5 views
0

Wie kann ich auf eine Tabelle verweisen, wenn Sie nicht die Standard-Tabellen-ID als Primärschlüssel der Tabelle verwenden? Ich habe zwei Tabellen mit E-Mail als Primärschlüssel erstellt und möchte diese Tabellen-E-Mail als Fremdschlüssel in der anderen Tabelle haben. Bitte Wie kann ich das erreichen?Verweis auf eine Tabelle hinzufügen

Antwort

0

können Sie Tabelle wie folgt mit E-Mail als Primärschlüssel erstellen:

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 

und definieren Sie Ihre Modelle wie folgt aus:

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 

Das ist alles, was Sie tun müssen. Sie können auch ID als Primärschlüssel für User Modell behalten, aber verwenden Sie email als Fremdschlüssel - dies kann einfacher sein, Ihre Modelle zu behandeln.

+1

ok @ i.lavrov. Danke für die Antwort –

Verwandte Themen