J'ai 2 articles 'article' et 'activité'. Un 'élément' peut avoir plusieurs 'activités' (nombre limité d'activités, utilisé par tous les éléments). Pour plus de clarté: ceci est représenté par une table avec un élément par ligne, une activité par colonne et quelque chose/rien sur l'intersection si une ligne existe dans les matrices de table.has_many à travers: comment récupérer l'identifiant d'une ligne dans la table de correspondance?
pour voir une image (vaut 1000 mots :)): http://tinypic.com/r/33ygtj9/3
Les relations sont (je pense) définir correctement: point matrices has_many, activités has_many article par des matrices
matrices has_many d'activité, l'activité des éléments has_many par des matrices
matriceappartient à l'élément, matrice appartient à l'activité
Quelques informations complémentaires/utiles: - la matrice est représentée graphiquement par une table avec un élément par ligne, une activité par colonne et OK/KO sur l'intersection s'il existe une ligne dans les matrices de table. - j'ai 2 autres modèles dans l'image: un modèle de cours et un modèle de chapitre (cours a de nombreux chapitres, le chapitre a de nombreux articles) - Tout se passe dans la vue du cours « show »
Jusqu'à présent, je l'ai réussi à créer directement une ligne (sans passer par un formulaire) dans la table des matrices avec l'identifiant activity_id et l'item_id. Cependant, j'ai du mal à supprimer une ligne, car je ne comprends pas comment accéder à la valeur de matrices.id. La seule façon que j'ai trouvé encore est, pour chaque article, de parcourir toutes les activités disponibles pour cet item dans un hash (clé = activity_id, value = matrices_id). Si l'activité n'est pas disponible, j'affiche OK + un lien pour créer une ligne dans les matrices sinon, OK + lien à détruire.
Existe-t-il un moyen plus simple/plus rapide de faire cela? c'est-à-dire se débarrasser du hachage?
merci pour votre aide.
Pierre
les relations ressemblent déjà à ce que vous avez proposé. en ce qui concerne le chapitre et bien sûr: cours chapitres has_many (de course_id) chapitre belongs_to cours la dernière partie (y compris) est en fait pas ce que je voudrais faire. Je voudrais quelque chose comme item.matrices [0] .id mais même si item.matrices.size renvoie quelque chose, je ne peux pas accéder à un index spécifique – Pierre
Je commence à devenir fou. si je fais <% item.matrices.each do | mt |%> <%=mt.id%> <%end%> je peux voir chaque ID de matrice, mais item.matrices [0] .id ne fonctionnera pas! Suis-je stupide? – Pierre