2017-07-29 4 views
0

Ich habe vier Modelle: Interview, Interviewte, Interviewer und InterviewDate.Mehrere eins zu viele Association für ein einzelnes Modell

Die Beziehungen in Bezug auf die Schienen Verbände sind wie folgt:

  1. Ein InterviewDate viele Interviews (One to Many) haben
  2. ein Befragter viele Interviews haben kann (One to Many)
  3. Ein Interviewer können viele Interviews haben und ein Interview viele Interviewer (viele zu viele) haben

so, wie Sie es drei eingehenden „man sieht sind y "Beziehungen auf dem Interview Modell. Wie sollte das Routing in Schienen durchgeführt werden, wenn ich folgende Aufgaben in der Ansicht ausführen muss?

  1. Liste alle von InterviewDate gruppiert Interviews

  2. Formular zur Erstellung eines Interview (die auch Felder aus anderen 3 Tabellen in der Datenbank enthalten Einsparung würde).

+0

Was spricht gegen übliche '/ interviews /' und '/ interviews/new'? – idmean

+0

Muss InterviewDate wirklich ein separates Modell sein? Es ist etwas, das ich als ein weiteres Attribut von Interview modellieren würde, und um alle Interviews an einem bestimmten Datum zu bekommen, würden Sie nur nach Datum suchen. – struthersneil

+0

Ich erstelle gerade ein anderes Modell für InterviewDate, da ich die Datenredundanz reduzieren möchte, die verursacht würde, wenn es im Interview-Modell enthalten ist. –

Antwort

1

Wenn Sie Interviews werden sollen Listing dann muss man mit so etwas wie folgen beginnen:

resources :interviews 

Da Sie viele zu vielen Assoziationen ist möglich haben, werden Sie brauchen, etwas zu verwenden: http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association

Überprüfen Sie auch diese andere Ressource, weil Sie mit verschachtelten Formen/Attribute arbeiten müssen: https://www.sitepoint.com/master-many-to-many-associations-with-activerecord/

+0

Danke! Ein weiterer Zweifel, den ich hatte, ist, kann ich diese direkte Route für Interviews zusammen mit Route Like/Interviewte/1/Interviews oder/Interviewer/1/Interviews haben. –

+0

Sie müssen mit verschachtelten Ressourcen arbeiten, so etwas wie dieses: 'Ressourcen: Interviews tun Ressourcen: Interviewte end' ' Ressourcen: Interviews tun Ressourcen: Interviewer end' – Carlos

+0

Würde ich in der Lage sein, ein zu verwenden, einzelner "Interview" -Controller, um die verschachtelten Attribute für Interviewer und Interviewpartner zu speichern? –

0

Da Sie Interviews sind Listing, sollten Sie Ihre Route der Standard sein /interviews/: sollte

resources :interviews 

Und Ihre schaffen Form Verwendung von ActiveRecord's Nested Attributes machen.

Abhängig von der Komplexität Ihres Formulars möchten Sie vielleicht die Cocoon gem verwenden, aber es ist nicht erforderlich.

Verwandte Themen