Mit ActiveRecord habe ich ein Objekt, Client, dass null oder mehr Benutzer (d. H. Über eine has_many-Zuordnung). Der Client verfügt auch über das Attribut 'primary_contact', das manuell festgelegt werden kann, aber immer auf einen der zugeordneten Benutzer verweisen muss. I.e. primary_contact kann nur leer sein, wenn keine Benutzer zugeordnet sind.Wie kann ich einen gültigen Verweis auf ein bestimmtes Objekt in einer ActiveRecord-Verknüpfung erstellen/verwalten?
Was ist der beste Weg, Kunden zu implementieren, so dass:
a) Das erste Mal, wenn ein Benutzer an einem Client hinzugefügt wird, primary_contact gesetzt auf diesen Benutzer zeigen?
b) Der primary_contact befindet sich immer in der Benutzerassoziation, es sei denn, alle Benutzer werden gelöscht? (Dies hat zwei Teile: wenn ein neuer primary_contact gesetzt oder ein Benutzer aus der Assoziation entfernt wird)
Mit anderen Worten, wie kann ich den Titel des "primären Kontakts" einem Benutzer eines bestimmten Kunden zuweisen und neu zuweisen? Ich habe mit zahlreichen Filtern und Validierungen herumgebastelt, aber ich kann es einfach nicht richtig machen. Jede Hilfe wäre willkommen.
UPDATE: Obwohl ich bin sicher, dass eine Vielzahl von Lösungen gibt es, landete ich User Client informieren, die, wenn sie und dann unter Verwendung eines BEFORE_SAVE Anruf-Client gelöscht wird zur Validierung (und Satz, falls erforderlich) sein primärer_kontakt. Dieser Aufruf wird vom Benutzer kurz vor dem Löschen ausgelöst. Dies erfasst nicht alle Kantenfälle beim Aktualisieren von Verknüpfungen, aber es ist gut genug für das, was ich brauche.