给定@comments = Comments.last(6)
,它基于模型的默认命名范围进行查询。
我怎样才能告诉Rails
给我最后6条记录,排除第一条记录?
如果小于6
,请尽可能多地给我6
,同样不包括第一条记录?
由于
答案 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)