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

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

谢谢

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

@comments[-2] 

以下是 Ruby有趣的索引运算符的文档 1


1. Rubyists,请注意我是如何联系到这一点的。 如果你从ruby-doc链接中取出版本,那么引用将是持久的并且是最近的。

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

 @comments[1..-2] 

并获得倒数第二个:

 @comments[-2] 

Ruby Array#range的文档

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

 @comments.last(2) 

ActiveRecord :: FinderMethods的文档

可以包含1个或多个记录

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

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

 @comments.last(2)[0] 
 @comments[-2] 

这和你上一个问题几乎一样。

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