将“where”查询应用于最后几个活动记录

时间:2014-03-20 20:38:07

标签: ruby-on-rails ruby activerecord

对于我的Rails应用程序,我想查询添加到应用程序的最后20个评论。我注意到我不能做像

这样的事情
Comment.last(20).where("length(body) > 20")

因为我收到了错误

NoMethodError: undefined method `where' for #<Array:0x007f90e41320c8>

但我不想在拉长最后20个之前查询所有长度符合我标准的评论(因为有数百条记录,这看起来效率低下)。

我可以想象解决这个问题的一种方法是写一个循环,但我想知道是否有一种简单的单行方式可以将查询应用于有限数量的活动记录。

1 个答案:

答案 0 :(得分:1)

where未在阵列上实现。但有一些方法,例如:findselect

Comment.last(20).select { |comment| comment.body.length > 20 }