Ich habe zwei Modelle: Benutzer und HairColor. Ein Benutzer hat nur eine Haarfarbe, kann aber viele Haarfarbenpräferenzen haben. Was ist der beste Weg, dies zu modellieren?Schienen: Wie modelliere ich Präferenzen? Sollte ich has_many: durch?
Hier ist, was ich begann zu tun:
#models/user.rb
class User < ActiveRecord::Base
belongs_to :hair_color
has_many :preferences,
has_many :hair_colors, :through => :preferences
end
#models/hair_color.rb
class HairColor < ActiveRecord::Base
has_many :users
end
#models/preference.rb
class Preference < ActiveRecord::Base
belongs_to :user
belongs_to :hair_color
end
Nutzen has_many: durch den richtigen Ansatz? Auch wenn ich das auf andere Attribute wie "Augenfarbe" erweitern möchte? (Ein Benutzer hat eine Augenfarbe, sondern kann viele Augenfarben bevorzugen“
Danke! Werde es ausprobieren. Um weitere Einstellungen wie "Augenfarbe" hinzuzufügen, müsste ich nur eine "eye_color_id" -Spalte zur Präferenztabelle hinzufügen? Oder sollte ich die Einstellungen in verschiedene Modelle wie "HairColorPreference" und "EyeColorPreference" unterteilen? Ich bin mir nicht sicher, welches das DRY wäre. – Chanpory
Für weitere Fragen aktualisiert. –
Chuck, das ist großartig. Ich raufte mir die Haare, versuchte herauszufinden und zu verstehen, was passiert ist. Dies scheint der DRY-Ansatz zu sein. Jetzt werde ich es ausprobieren und dann versuchen, ein Formular zum Auswählen von Einstellungen in einer Ansichtsvorlage zu erstellen. Neu bei Ruby on Rails, aber hoffentlich ist es nicht zu schwer. Vielen Dank! – Chanpory