鉴于@comments - 如何排除第一条记录

时间:2011-01-30 00:51:50

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

给定@comments = Comments.last(6),它基于模型的默认命名范围进行查询。

我怎样才能告诉Rails给我最后6条记录,排除第一条记录? 如果小于6,请尽可能多地给我6,同样不包括第一条记录?

由于

2 个答案:

答案 0 :(得分:2)

我可能会在这里使用暴力而不是SQL魔法:

@comments.delete_at(0)

答案 1 :(得分:1)

class Comment < ActiveRecord::Base
  scope :excluding_first, lambda {
    first = Comment.first
    return [] unless first
    where("id <> #{first.id}")
  }
end

由于范围构成,您可以这样做:

Comment.excluding_first.last(6)