2016-09-27 1 views
0

Ich bin eine Anwendung einrichten und ich habe Probleme mit ActiveRecord Beziehungen. Hier ist der Zusammenbruch.Rails 4 ActiveRecord Beziehungen Problem

1. Ein Client has_many Seiten daher eine Site belongs_to Kunde

class Client 
has_many :sites 
end 

class Site 
belongs_to :client 
end 

2. A-Stelle has_many Berichte daher ein Bericht belongs_to Website

class Site 
has_many: reports 
end 

class Report 
belongs_to :site 
end 
  1. das ist, wo ich ratlos bin.

    A Patrol has_many Hits daher ein Hit belongs_to Patrol

    A Hit belongs_to Website daher eine Website has_many Zugriffe

    ein Bericht belongs_to Website daher eine Website has_many Berichte

das Problem setzt dieser letzte Teil nicht zu sicher, um die Modelle zu gestalten oder wenn eine: durch Beziehung gerechtfertigt ist ?? Im Wesentlichen möchte ich hier erreichen, dass, wenn ein Admin eine Patrouille einrichtet und eine Site einem Treffer zuweist, der Benutzer die Site über die Hit-Show-Seite ansehen und einen neuen Site-Report generieren kann, der dann unter dem Client angesehen werden kann. Website-Seite in der Admin-Tabelle anzeigen.?

Bin ich draußen im Weltraum?

Die Verschachtelung des Clients und der Website war ein Kinderspiel und ich kann einen neuen Bericht von der Website zeigen Seite erstellen, aber um die Erstellung von Berichten für den Endbenutzer zu optimieren hoffe ich, die obige Route zu gehen .. nur nicht sicher, wie Vorgehen.

Wenn Sie weitere Hilfe benötigen, lassen Sie mich bitte krank geben Ihnen, was ich kann!

Danke.

EDIT # 1 Meine Modellstruktur

This group is nested as a site is built through the client show page 
class Client 
has_many :sites 
end 

class Site 
belongs_to :client 
end 

Dies ist, wo ich die meisten Troubel habe, da es eine Menge auf hier zumindest in meinem Kopf geht. Ich bin offen für alle Vorschläge in der Konfiguration diese ..

class PatrolRoute 
has_many :patrol_hits 
end 

class PatrolHit 
belongs_to :patrol_route 
# A PatrolHit Should only have one Site and that site should not be created only selected from a dropdown box of pre-existing sites 
end 

class Site 
belongs_to :patrol_hit 
has_many: patrol_reports 
end 

Class PatrolReport 
belongs_to :site 
has_many :line_items 
end 

class LineItem 
belongs_to :report 
end 
+0

Was ist 'Patrol'? ein anderes Modell? – Aleksey

+0

Ich füge alle meine Modelle hinzu –

+0

Ich frage nur nach 'Patrol'. Es ist ein anterger Modell oder eine Instanz eines hier aufgeführten Modells? – Aleksey

Antwort

2

Es ist schwer, Ihnen genaue Antwort zu geben, da die ganze Sache und DB-Struktur unklar ist.

Eine Sache, die Sie mit all diesen Verbänden tun könnte helfen, ist einfach:
belongs_to :foo bedeutet, dass DB-Tabelle Modell foo_id Spalte haben sollte.

In Ihrem speziellen Fall

class PatrolHit 
    belongs_to :patrol_route 
end 

bedeutet, dass patrol_hits Tabellenspalten wie

id    
patrol_route_id 
... 

Ich denke, halten diese Regel im Auge würden Sie helfen sollte.

Verwandte Themen