在迭代数组

时间:2016-10-29 05:44:13

标签: ruby-on-rails ruby

我有一个4条评论的列表,我想迭代到一个有序列表中,以创建4行评论。

我的ERB部分:

<ol>
  <% @post.comments.each do |c| %>
    <li><%= c.body %></li>
  <% end %>
</ol>

但是,当它在页面上呈现时,它看起来如下:

1. Foo
2. Bar
3. Baz
4. Foobar
5. 

似乎是在循环周期结束时添加了一个额外的空元素。

我如何遍历数组似乎是什么问题?

2 个答案:

答案 0 :(得分:0)

请检查您与帖子相关的评论数量,如下所示

@post.comments.count

将有5条记录。删除最后一个,并在下面的评论模型中添加验证,

validates_presence_of :body

这应该防止它产生空白记录。如果情况不是这样,请告诉我。

答案 1 :(得分:0)

经过一番挖掘后,我找到了答案。

在我的问题中,我没有提到我在列出评论的同一页面上也有form_for个新评论。

在我的Post控制器上,我已将其设置为@comment = @post.comments.new。这反过来又为@post的该视图创建了一个空的,未保存的评论。因此,在该操作上,我将其更改为通用@comment = Comment.new,然后手动传递最终需要进行关联的id。我不知道那是不是最好的&#34;方式,但这是它对我有用的方式。