2016-02-07 43 views
0

我有一个意见表中的链接和形式如下:轨道4。每次打印一个额外的空结果

<%= form_for([@link, @link.item_comments.build]) do |f| %> 
    <%= f.hidden_field :user_id, value: current_user.id %> 
    <%= f.text_area :content %> 
    <%= f.submit "Submit" %> 
<% end %> 

我打印出来的页面与评论:

<ul> 
    <% @link.item_comments.each do |comment| %> 
     <li><%= comment.content %> <%= comment.user_name %></li> 
     Points: <%= comment.points %> 
    <% end %> 
    </ul> 

但是当我查看页面时,我在最后打印出一个额外的空白元素。任何人都可以解释发生了什么?我认为这可能与表格中的.build有关,但我无法找到任何有关它的信息。

干杯

回答

0

你是正确.build是原因。

docs

collection.build(属性= {},...)返回一个或已经通过实例化属性和链接到该对象的集合类型的更新对象外键,但尚未保存。

但即使它尚未保存它会被添加,使其出现了@link.item_comments集合,您使用的是您的each环英寸

从您的其他代码看起来好像您必须将评论与链接关联起来才能保存评论,您可以使用form_for([@link, ItemComment.new])代替form_for

+0

“尽管它还没有被保存,但它会被添加以便它看起来......” 是的。在我的情况下实际解决它的只是把形式放在视图中的循环之上。谢谢 – BillyBib