9 Stimmen

Rails benutzerdefinierter foreign_key Name für beide Tabellen

Ich habe zwei Modelle, zum Beispiel User und Club mit ihren Attributen:

User:
  id
  uid
  email
  etc.

und

Club:
  id
  player_id
  address
  supporter
  etc.

Aus irgendeinem Grund ist das Attribut join clubs.player_id con users.uid NICHT clubs.player_id con users.id . Ist es möglich, diese beiden Modelle zu verbinden mit one-to-one Assoziation mit has_one y belongs_to ? danke

28voto

Adam Punkte 3140

Ich wette, das würde funktionieren:

class User < ActiveRecord::Base
  has_one :club, :foreign_key => :player_id, :primary_key => :uid
end

class Club < ActiveRecord::Base
  belongs_to :user, :foreign_key => :player_id, :primary_key => :uid
end

0voto

Rebekah Waterbury Punkte 20816

Können Clubs viele Benutzer haben und Benutzer zu vielen Clubs gehören? Wenn ja, dann sollten Sie sich die http://guides.rubyonrails.org/association_basics.html Seite für die Assoziationsmethode has_and_belongs_to_many relationship. Wenn Sie diese Assoziationsmethode verwenden, müssen Sie eine separate Migrationstabelle erstellen, um die user_id mit der club_id zu verknüpfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X