J'ai deux modèles: User et HairColor. Un utilisateur a seulement une couleur de cheveux, mais peut avoir plusieurs préférences de couleur de cheveux. Quelle est la meilleure façon de modéliser cela?Rails: Comment modéliser les préférences? Dois-je utiliser has_many: through?
Voici ce que j'ai commencé à faire:
#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
utilise-t-has_many: grâce à la bonne approche? Aussi, que faire si je veux étendre cela à d'autres attributs tels que "couleur des yeux"? (Un utilisateur a une couleur des yeux, mais peut préférer beaucoup de couleurs pour les yeux »
Merci! Je vais essayer ça. De même, pour ajouter d'autres préférences telles que Couleur des yeux, aurais-je juste besoin d'ajouter une colonne 'eye_color_id' à la table des préférences? Ou devrais-je séparer les préférences en modèles distincts, tels que "HairColorPreference" et "EyeColorPreference"? Je ne sais pas lequel serait le plus sec. – Chanpory
Mis à jour pour une autre question. –
Chuck, c'est génial. Je me suis arraché les cheveux en essayant de comprendre et de comprendre le has_many: à travers l'association. Cela semble être l'approche la plus sèche. Alors maintenant, je vais essayer et ensuite essayer d'obtenir un formulaire de travail pour la sélection des préférences dans un modèle de vue. Nouveau sur Ruby on Rails, mais j'espère que ce n'est pas trop dur. Merci! – Chanpory