J'ai écrit une application pour un magasin de vêtements en ligne dans Rails 2.3.5. Je souhaite afficher les produits associés lorsqu'un client consulte la page Détails du produit. Par exemple, si le client consulte la page de détail d'un costume, j'aimerais afficher les accessoires qui correspondent à la robe, comme une veste, des chaussures et une ceinture. J'ai nommé les produits connexes un ensemble. Cependant, le gilet, les chaussures et les ceintures sont aussi des produits qui sont ce qui me fait mal. Je l'ai fonctionné comme suit mais je sais que ce n'est pas la manière de Rails. J'ai une table Produits pour tous les produits. Pas important ici mais j'ai aussi une table ProductDetails. J'ai une table d'ensemble qui a les colonnes suivantes:Modèles de collections auto-référencées dans Rails
- Product_ID - le principal produit ou de l'origine, celui qui est affiché sur la page de détails
- de outfit_id - le produit connexe ou accessoire
Dans un cadre les données, dans la liste Produits, pour chaque produit que j'ai un lien Ensemble. Ce lien vous amène à l'action d'index dans le contrôleur Ensembles. En utilisant l'id du produit "principal", je trouve toutes les lignes d'ensemble associées par product_id ou je crée un nouvel ensemble et j'attribue l'id du produit principal en tant que product_id. Je voudrais juste pouvoir faire @ product.related_products pour obtenir une collection Ensemble.
Toujours sur la page d'index, je liste les colonnes du produit principal afin que l'utilisateur puisse être sûr que son produit principal est celui qu'il a sélectionné dans la liste. J'ai également une liste de sélection des autres produits, avec une action Ajouter à l'ensemble.
Enfin sur la même page d'index, j'ai une table qui affiche les produits qui sont déjà dans l'ensemble et dans cette liste chaque rangée a un lien de détruire pour retirer un produit particulier de l'ensemble. Ce serait bien si donné une seule ligne Ensemble @ensemble, je pourrais faire @ ensemble.product pour obtenir le produit lié à l'outfit_id de la rangée d'ensemble.
Je l'ai fonctionné sans associations, mais je dois exécuter des requêtes dans le contrôleur pour créer mes propres collections @product, @ensemble et @ensembles. Aussi la seule façon dont j'ai trouvé pour détruire une ligne d'ensemble est Ensemble.connection.delete (sql to delete), simple @ ensemble.destroy ne fonctionne pas. Quelqu'un sait comment je voudrais mettre en place les associations ou avoir un lien vers un site expliquant une configuration similaire. Aucun des exemples que j'ai trouvés n'utilise la même table. Ils ont un rapport avec B à C. Je veux un autre lié à A à B.
Excellente c'est ainsi que je m'attendais à ce que cela fonctionne, mais je n'ai jamais compris à partir des autres exemples que je pouvais créer/supprimer des rangées d'Ensemble basées sur les tenues. J'essayais toujours de travailler avec la série Ensemble elle-même. Merci pour la clarté. – Najitaka