Rails - 给定@Comments - 如何获得第二个到最后一个评论而没有重新命名数据库

时间:2011-01-16 19:22:05

标签: ruby-on-rails ruby-on-rails-3

给出@comments,它可以包含1个或多个记录。我如何获得倒数第二个评论?

由于

5 个答案:

答案 0 :(得分:30)

我想这也将被称为倒数第二个记录:

@comments[-2]

Here are the docs 1 到Ruby有趣的索引运算符。

<小时/> 1。 Rubyists,请注意我是如何联系这个的。如果您从ruby-doc链接中获取该版本,则该引用将是持久且最近的。

答案 1 :(得分:9)

使用任何Ruby数组,您可以指定任何范围或特定索引,例如,如果您想要从第二个最旧到第二个最新的评论,您可以这样做:

@comments[1..-2]

并获得倒数第二名:

@comments[-2]

Ruby Array#range

的文档

在Rails中,如果你想要最后两条注释,那么你可以这样做,它返回最后两条的数组:

@comments.last(2)

ActiveRecord::FinderMethods

的文档

答案 2 :(得分:7)

  

可以包含1条或更多条记录

这个问题已经过时了,但对于现在来这里的人来说......

如果只有一条记录,其他解决方案将返回nil。如果您想确保返回记录使用:

@comments.last(2)[0]

答案 3 :(得分:3)

@comments[-2]

这与你的上一个问题几乎相同。

答案 4 :(得分:1)

@comments = Comment.all         #Gather all comments from DB, filter as necessary.
@comments[-2]                   #Second to last comment in array