Следующая проблема была исправлена, я добавил 's' в конце комментариев, когда это должен быть просто комментарий, но в нижней части этого сообщения возникла новая проблема.
Я пытаюсь получить многопоточные комментарии для моей уже существующей системы комментариев, следуя ответу на вопрос этого человека: Вложенные / резьбовые / отступовые комментарии в стиле Reddit для Rails?
Когда я пытаюсь получить доступ к моей странице показа статьи, я получаю следующую ошибку: неопределенный метод `children 'для #
Вот вид с моей страницы показа статьи, который проблематичен:
<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>
Проблема связана с частью рендеринга.
Если я уберу часть детей из комментариев, я получу это в своей консоли:
Рекурсия никогда не останавливается. Я получаю это: Отрендеренные комментарии / _form.html.erb (14,9 мс) Отрендеренные комментарии / _comment.html.erb (2,0 мс) Отрендеренные комментарии / _comment.html.erb (7,3 мс) ms) Предоставленные комментарии / _comment.html.erb (17.9ms) Предоставленные комментарии / _comment.html.erb (22.3ms) Предоставленные комментарии / _comment.html.erb (26.8ms) Предоставленные комментарии / _comment.html.erb (31.6ms) Предоставленные комментарии / _comment.html.erb (36.2ms) ....
Я не знаю, почему он продолжает рендеринг.
Ни в одном из комментариев нет детей, поэтому его стоит прекратить.
Вот часть 'show' контроллера статьи:
def show
@article = Article.find (params [: id])
@commentable = Article.find (params [: id])
@comments = @ commentable.comments.paginate (: page => params [: page])
@comment = Comment.new
@title = @ article.title
конец
Мое единственное объяснение состоит в том, что, возможно, нет никаких комментариев детей, поэтому will_paginate не знает, что с ним делать, поэтому выдает ошибку.
Новая проблема , у меня проблема с маршрутизацией для комментариев. Я использую полиморфные ассоциации для своих комментариев, чтобы их можно было использовать для разных моделей (статей, профилей, изображений и т. Д.), Но я не знаю, как создать пути маршрутизации в моем представлении.
Вот что у меня сейчас:
<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>
Существует множество ошибок маршрутизации, которые не будут работать для других моделей. Я использую: article_comment_path, new_article_comment_path и edit_article_comment_path. Кстати, это внутри a для каждого цикла, который проходит по массиву комментариев. Я хочу что-то вроде "commentable_comment_path" или "new_commentable_comment_path", чтобы я мог использовать его для своих других моделей.
Еще один быстрый вопрос, это исправит мою ссылку «ответить»? Я не уверен, правильно ли я это делаю. Я хочу, чтобы ссылка ответа создала комментарий в комментарии.
Большое вам спасибо.