Frage

Ich arbeite an einer Rails-Anwendung, die Informationen über eine Gruppe von Leuten enthalten wird. Es gibt zwei Anwendungsfälle:

  1. Ein Administrator betritt und unterhält Profil einer Person
  2. Die Person kann entscheiden, um sich zu registrieren, melden Sie sich an, und halten ihr eigenes Profil

Ich versuche, die Beziehung zwischen dem Profil zu erarbeiten und dem Benutzer. Gerade jetzt, es ist, dass profile belongs_to :user und user has_one :profile.

Aber diese Brüche, weil einige Profile noch keinen Benutzer haben - sie sind vom Administrator gepflegt. In diesem Fall ist die user_id Spalte in profiles null, verbinden sich die fehlschlägt, und die Seite wird nicht geladen. ++

Wie kann ich die Einrichtung eines "möglicherweise belongs_to" Art von Beziehung?

++ (Eigentlich ist es aufkommt leer, ohne Fehler angezeigt, und development.log hat keine Fehler entweder, aber ich kann sehen, dass es nicht alle Abfragen Finishing es für ein Profil hat, das hat ein Benutzer. Wenn jemand weiß, wie ich stattdessen eine hilfreiche Fehlermeldung erhalten kann, die auch groß sein würde.)

War es hilfreich?

Lösung

Das ist der richtige Weg, es zu tun. belongs_to nicht daran hindert, null Werte, und das klingt wie das, was Sie wollen.

Die „Seite“ für ein Profil, das, gehört noch nicht zu einem Benutzer möglicherweise nicht so viele Fragen haben, denn es gibt keine Notwendigkeit (oder Weg) für das Profil der Benutzer-Tabelle abzufragen.

Sie sollten profile.user für nil überprüfen und Ihre Ansichten entsprechend präsentieren.

Andere Tipps

Wenn ein Profile wirklich zu einem User gehört, dann sollte es nicht immer null sein (so wie es keinen Sinn macht, einen Engine ohne Car zu betrachten es angebracht ist). Sie müssen also die Profile.belongs_to :user Vereinigung löschen.

Nun sollten Sie frei bearbeiten Profiles der Lage sein und sie einfach, wenn sie bereit sind, zu einem User befestigen. Aber Sie haben ein anderes Problem:

  

Die Person kann entscheiden, um sich zu registrieren, melden Sie sich an, und halten ihr eigenes Profil

Wie funktioniert das System zuverlässig identifizieren, welche bereits erstellten Profil zu einem bestimmten Benutzer gehört, für die noch kein eigenes Profil? Das ist eine Frage des Designs Sie aussortieren müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top