2015-07-12 72 views
1

我已經從ruby on rails網站上啓動了「入門指南」。一切工作正常,但當我更改顯示所有評論的順序顯示評論形式在相反的方式,比form_for功能添加一個空的評論模型@post.comments等等,我顯示一個空的評論在循環。 這裏是觀點:Rails form_for添加空模型

<h1><%= @post.name %></h1> 
<p><%= @post.text %></p> 
<h2>Add comment</h2> 
<%= form_for([@post, @post.comments.build]) do |f| %> 
    <p> 
    <%= f.label :name %><br> 
    <%= f.text_field :name %> 
    </p> 
    <p> 
    <%= f.label :email %><br> 
    <%= f.text_field :email %> 
    </p> 
    <p> 
    <%= f.label :text %><br> 
    <%= f.text_area :text %> 
    </p> 
    <p> 
    <%= f.submit %> 
    </p> 
<% end %> 
<h2>Comments</h2> 
<%= render @post.comments %> 

循環顯示兩個評論。一個存在於db和one中的空白屬性。如果我刪除了表單,那麼所有表單都顯示正確。

+0

你還應該顯示你的帖子控制器。 – MarsAtomic

回答

1

只能選擇你堅持意見:

<%= render @post.comments.select(&:persisted?) %>

+0

對我來說工作得很好,thx。 – Andre

1

當你做對post.comments.build一些後,它會被添加到post.comments收集,並與其他一起顯示註釋。

您可以隨時使用persisted來檢查對象是否存在於數據庫中,意思是將id分配給它。

@post.comments.select(&:persisted?) 

注意:.present?請檢查在這裏工作,所以你必須使用.persisted。? 目前支票只與家長聯繫。