Rails 3 - Почему в моем представлении Post # Show отображаются все данные базы комментариев в одном большом блоке после списка комментариев? - PullRequest
0 голосов
/ 25 августа 2011

В приложении, посвященном блогам на Rails 3, у меня есть модель полиморфных комментариев, в которой сообщения имеют комментарии (через: commentable).Страница Пост # Показать имеет форму для комментариев, которые отправляются через AJAX в список комментариев ниже.Все работает отлично, за исключением того, что Rails по какой-то причине выдает полный список записей базы данных для всех комментариев к этому посту в [] в самом низу моего списка комментариев.Я не могу понять, откуда это и почему!

Вот, возможно, соответствующие куски кода, пожалуйста, не стесняйтесь просить больше!Заранее спасибо.

просмотров / сообщений / шоу

...
<%= render 'comments' %>
...

просмотров / сообщений / _комментариев

<%= render :partial => 'comments/form' %>

<ul class="comments">
  <% if @post.comments.empty? %>
    <li>none yet</li>
  <% else %>
    <%= render :partial => 'comments/comment' %>
  <% end %>
</ul>

просмотров / комментариев / комментариев

<%= @comments.each do |comment| %>
<li>
  <p class="comment_body">"<%= comment.body %>"</p>
  <br/>
  <p class="comment_info"><%= comment.name %> - <%= time_ago_in_words(comment.created_at) %> ago </p>
</li>
<% end %>

Контроллер сообщений

def show
  @post = Post.find(params[:id])
  @comments = @post.comments
  @commentable = @post
  @comment = Comment.new(:commentable => @post)
  @title = @post.author
end

И вот, где ошибка закрадывается (из Page Source).Сразу после последнего комментария закрывается и до того, как комментарии закрываются:

....
</li>
[#&lt;Comment id: 97, name: &quot;hmmm?&quot;, body: &quot;hmmm&quot;, created_a...
</ul>

Что это за вещь и почему она здесь !?Спасибо.

1 Ответ

5 голосов
/ 25 августа 2011

это = в теге @comments.each.Он возвращает результат each, который является целым массивом.

Например:

irb> [1,2].each {|i| puts i }
1
2
=> [1, 2]

Итак:

<%= @comments.each do |comment| %>

Должно быть просто:

<% @comments.each do |comment| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...