Le problème suivant a été corrigé, j'ai ajouté un « s » à la fin des commentaires, quand il devrait juste être un commentaire, mais un nouveau problème a surgi au bas de poster.Commentaires filetés - méthode non définie des enfants » pour
Je suis en train d'obtenir des commentaires filetés pour mon système de commentaires déjà existant en suivant la réponse à la question de cet homme: Reddit-style nested/threaded/indented comments for Rails? Lorsque je tente d'accéder à mon article à la page show, je reçois l'erreur suivante: méthode non définie des enfants » pour # Voici la vue de mon article page montrent que pose problème:
<div id="comment <%= comment.id %>">
<%= comment.title %>
| <%= link_to "Edit Comment", edit_article_comment_path(@commentable, comment) %>
| <%= link_to 'Delete Comment', [@commentable, comment], :confirm => "Are you sure?", :method => :delete %><br />
<%= comment.content %><br />
**<%= render :partial => 'comments/comment', :collection => @comments.children %>**
<%= comment.user.name %><br /><br />
</div>
Il est la partie qui rend a un problème. Si je sors la partie enfants des commentaires, je reçois ceci dans ma console: La récursivité ne s'arrête jamais. Je reçois ceci: Commentaires rendus/_form.html.erb (14.9ms) Commentaires rendus/_comment.html.erb (2.0ms) Commentaires rendus/_comment.html.erb (7.3ms) Rendu des commentaires/_comment.html.erb (12.3 ms) Rendu des commentaires/_comment.html.erb (17.9ms) Commentaires rendus/_comment.html.erb (22.3ms) Commentaires rendus/_comment.html.erb (26.8ms) Commentaires rendus/_comment.html.erb (31.6ms) Commentaires rendus/_comment.html.erb (36.2ms) .... Je ne sais pas pourquoi ça continue le rendu. Aucun des commentaires n'a d'enfants, donc cela devrait s'arrêter. est ici la partie 'show' du contrôleur de l'article:
montrent def = @article Article.find (params [: id]) @commentable = Article.find (params [: id]) @comments = @ commentable.comments.paginate (: page => params [: page]) @comment = Comment.new @title = @ article.title fin
Ma seule explication est que peut-être il n'y a pas d'enfants commentaires, donc will_paginate ne sait pas quoi en faire, donc il me jette une erreur.
Nouveau problème, j'ai un problème de routage des commentaires. J'utilise des associations polymorphes pour mes commentaires afin qu'ils puissent être utilisés pour différents modèles (articles, profils, images, etc.), mais je ne sais pas comment créer les chemins de routage à mon avis. Voici ce que j'ai maintenant:
<div id="comment <%= comment.id %>">
<%= comment.title %>
| <%= link_to "Permalink", article_comment_path(@commentable, comment) %>
| <%= link_to "Reply", new_article_comment_path(@commentable, @comment_child) %>
| <%= link_to "Edit Comment", edit_article_comment_path(@commentable, comment) %>
| <%= link_to 'Delete Comment', [@commentable, comment], :confirm => "Are you sure?", :method => :delete %><br />
<%= comment.content %><br />
<%= comment.user.name %><br /><br />
<%= render :partial => 'comments/comment', :collection => @comment.children %>
</div>
Il y a un nombre abondant d'erreurs de Pathing qui ne fonctionnent pas pour les autres modèles. J'utilise: article_comment_path, new_article_comment_path et edit_article_comment_path. En passant, c'est à l'intérieur d'un pour chaque boucle, qui boucle sur un tableau de commentaires. Je veux quelque chose comme "commentable_comment_path" ou "new_comment_comment_path", donc je peux l'utiliser pour mes autres modèles.
Encore une question rapide, cela va-t-il réparer mon lien "réponse"? Je ne suis pas sûr si je le fais bien. Je veux que le lien de réponse crée un commentaire dans un commentaire.
Merci beaucoup.
modifier: oops, je ne sais pas qui a écrit posté une réponse. La récursivité ne s'arrête jamais. Je reçois ceci: commentaires crépis/_form.html.erb (14.9ms) commentaires crépis/_comment.html.erb (2.0ms) commentaires crépis/_comment.html.erb (7.3ms) commentaires crépis/_comment.html. erb (12.3ms) Commentaires rendus/_comment.html.erb (17.9ms) Commentaires rendus/_comment.html.erb (22.3ms) Commentaires rendus/_comment.html.erb (26.8ms) Rendu des commentaires/_comment. html.erb (31.6ms) Commentaires rendus/_comment.html.erb (36.2ms) .... Je ne sais pas pourquoi ça continue à être rendu. Aucun des commentaires n'a d'enfants, donc ça devrait s'arrêter. – Kelp
Ah, avez-vous remplacé ': collection => comments.children' dans le partiel avec le code dans ma réponse? Je voulais dire le code dans votre vue de niveau supérieur. Pour être honnête, je suis sûr qu'il devrait être 'comment.children' dans la partie partielle au lieu de' comments.children'. – Shadwell
Haha, ouais c'était un mauvais placement des 's' dans les commentaires. Ce devrait seulement être "commentaire". J'ai oublié, c'était dans une boucle "pour chaque commentaire dans les commentaires". Merci. Aussi, j'ai un autre problème, je vais éditer le post principal avec des informations à ce sujet. – Kelp