Je pense que ma question est mieux décrite comme un exemple. Disons que j'ai un modèle simple appelé "Chose" et il a quelques attributs qui sont de simples types de données. Quelque chose comme ...Meilleures pratiques pour plusieurs associations avec la même classe dans Rails?
Thing
- foo:string
- goo:string
- bar:int
Ce n'est pas difficile. La table db contiendra trois colonnes avec ces trois attributs et je peux y accéder avec quelque chose comme @ thing.foo ou @ thing.bar.
Mais le problème que j'essaie de résoudre est ce qui se passe quand "foo" ou "goo" ne peut plus être contenu dans un simple type de données? Supposons que foo et goo représentent le même type d'objet. C'est-à-dire, ils sont les deux instances de "Whazit" juste avec des données différentes. Alors maintenant chose pourrait ressembler à ceci ...
Thing
- bar:int
Mais maintenant il y a un nouveau modèle appelé « Whazit » qui ressemble à ceci ...
Whazit
- content:string
- value:int
- thing_id:int
Jusqu'à présent, tout cela est bon. Maintenant, voici où je suis coincé. Si j'ai @ @, comment puis-je le configurer pour faire référence à mes 2 instances de Whazit par nom (Pour l'anecdote, la "règle métier" est que toute chose aura toujours exactement 2 Whazits)? C'est, j'ai besoin de savoir si le Whazit que j'ai est fondamentalement foo ou goo. Évidemment, je ne peux pas faire @ thing.foo dans la configuration actuelle, mais je dirais que c'est idéal. Ma première pensée est d'ajouter un attribut "name" à Whazit afin que je puisse obtenir les Whatzits associés à mon @thing et ensuite choisir le Whazit que je veux nommer ainsi. Cela semble moche cependant.
Y a-t-il un meilleur moyen?