Проблема дублирования комментариев в Rails - PullRequest
0 голосов
/ 25 марта 2012

Когда я создаю комментарий в своем фиде, rails дублирует все предыдущие комментарии.

Комментарии Contoller

def create
  @post = Post.find(params[:post_id])
  @comment = @post.comments.create(params[:comment])
  redirect_to post_path(@post)
end

Показ сообщений

<div class="content">
<%= markdown(@post.content) %>

<ul class="comments">
<% @post.comments.each do |comment| %>
    <%= render @post.comments %>
<% end %>
</ul>

<%= render "comments/form" %>
</div>

_comment.html.erb

<li>
<%= link_to comment.name, comment.url, :title => "visit website", :target => "_blank", :rel => "nofollow" %>
<p><%= comment.body %></p>
<time><%= comment.created_at.utc.strftime("%m.%d.%Y") %></time>

<%= link_to 'X', [comment.post, comment],
                :confirm => 'Are you sure?',
                :method => :delete %>
</li>

Post.rb

has_many :comments, :dependent => :destroy

Comment.rb

belongs_to :post

После создания первого комментария First Comment

После того, как я создаю первый комментарий Second Comment

Ответы [ 2 ]

4 голосов
/ 25 марта 2012

из вашего кода:

<% @post.comments.each do |comment| %>
    <%= render @post.comments %>
<% end %>

это должно быть либо:

<%= render @post.comments %>

, либо:

<% @post.comments.each do |comment| %>
    <%= render comment %>
<% end %>
2 голосов
/ 25 марта 2012

У меня есть ощущение, что вы хотите в вашем цикле это:

<ul class="comments">
<% @post.comments.each do |comment| %>
    <%= render comment %>
<% end %>
</ul>

И не рендер, опять же вся коллекция @post.comments

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...