ich eine Tabelle für Ihre Möglichkeiten schaffen würde, hat dann eine Join-Tabelle, die die geprüften Optionen
Dann zeichnet man hinzufügen: abhängig =>: zerstören, um die Beziehung auf der Seite Optionen. Das würde den Datensatz in der Join-Tabelle entfernen, wenn die Option entfernt wird. Hier
ist ein Beispiel für eine viele zu viele:
def User < ActiveRecord::Base
has_many :preferences, :dependent=>:destroy
has_many :options, :through=>:preferences
end
def Preferences < ActiveRecord::Base
belongs_to :user
belongs_to :option
end
def Option < ActiveRecord::Base
has_many :preferences, :dependent=>:destroy
has_many :users, :through=>:preferences
end
Wenn Sie benötigen Sie können mehrere Tabellen erstellen beitreten, für die andere Art von Optionen. Sagen Sie für die Hintergrundfarbe, Sie benötigen einen Join, mit dem Sie auch die Farbe mit der Assoziation speichern können, oder vielleicht müssen Sie für die Paginierung eine ganze Zahl für Artikel auf einer Seite speichern, die ein anderes Modell sein könnte. Oder Sie könnten einfach einen einzelnen String-Wert zu der Join-Tabelle hinzufügen und zugehörige Daten als String speichern und nur den einen String verwenden.
Das ist ein guter Vorschlag, aber würde nicht eine neue Tabelle einfach für die Speicherung dieser Präferenz erfordern? Ich hatte erwartet, eine Tabelle für alle Einstellungen zu haben, aber es sieht so aus, als ob sich eine neue Tabelle für verschiedene Einstellungen ergeben könnte, aber vielleicht ist es auch so. – 99miles
nein, Sie haben eine einzelne Tabelle, die jede Präferenz als Datensatz hat, dann eine Join-Tabelle von Benutzer zu Einstellungen. Sie fügen eine neue Voreinstellung hinzu, indem Sie der Voreinstellungstabelle eine Zeile hinzufügen, um die neue Voreinstellung als aktiv für einen Benutzer zu markieren, dem Sie einen Datensatz zum Join der Tabelle hinzufügen. –
Wenn meine Tabelle viele Einstellungen speichert, aber eine (oder mehrere) der Einstellungen eine has_many ist, wie funktioniert das? Nehmen wir an, ich speichere eine Sammlung von Namen wie eingangs erwähnt, sowie die Wahl der Benutzer von background_color. Wie würden diese Tabelle und dieser Join aussehen, wenn einige Einstellungen Eins-zu-Viele sind? id, account_id, background_color, names_selection so bin ich nicht sicher, wie Ihr vorgeschlagen ONE_TO_MANY Ansatz (aber es kann nicht nur eine ausgewählte viele dieser Namen sein) hier funktionieren würde) – 99miles