0

Ich möchte eine has_many Zuordnung mit einer x Anzahl von Datensätzen erreichen, und die Datensätze würden benannt werden.Rails namens has_many mit einem Limit

Lassen Sie uns das besser erklären. In einem previous question fragte ich, wie man einen Textbereich mit einer auswählbaren Auszeichnungssprache bildet und wir kamen zu der Schlussfolgerung, dass ich ein getrenntes Modell, Field benötigte, das die mehrfach benötigten Felder hatte (language, original und rendered).

Jetzt möchte ich in der Lage sein, ein Modell, sagen wir User, die zwei dieser Felder hatte. Zum Beispiel: about_me und biography. Wie würde ich diese Felder jedes Mal erstellen, wenn ich den Benutzer erstelle, sie bearbeiten, wenn ich den Benutzer bearbeite, und sie beim Bearbeiten des Benutzers zerstören? Und wie würde ich sie einfach schreiben: und User.biography?

Vielen Dank im Voraus für die Antwort.

Antwort

1

Davids Lösung erstellt das gemeinsame Modell.

Dann müssen Sie das Formular des Profils in das Formular Benutzer einfügen. Sie müssen die Methode accepts_nested_attributes_for im Benutzermodell verwenden.

Um das Profil zu löschen, wenn ein Benutzer gelöscht wird, fügen Sie dependent => :destroy zur Beziehung zwischen den 2 Modellen hinzu.

1

Sie müssen Callbacks verwenden (http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html).

Zum Beispiel, in Ihrem User Modell, haben Sie einen After_Create Callback, der die erforderlichen Felder erstellt.

Haben Sie auch einen After_Save-Callback, der user.changed prüft? und wenn es anders ist, aktualisieren Sie die Felder.

Verwandte Themen