我有一个带有整数列的帖子模型,名为' position'手动订购它们。在帖子的展示页面上,我有更多帖子'部分@more_posts。
@more_posts = @comment.posts.where("posts.id NOT IN (?)", @post.id).order("position").limit(2)
这给了我两个独特的帖子,但我不知道如何获得接下来的两个帖子而不是两个最高位置的帖子。假设当前的post.id是2,我喜欢@more_posts来获得帖子3和4.
(我使用postgresql是开发中的生产和sqlite。)
答案 0 :(得分:0)
@more_posts = @comment.posts.where(id: [@post.id + 1, @post.id + 2])
或
@more_posts = @comment.posts.where("id > ?", @post.id).limit(2)
如果您按职位排序,请考虑:
@more_posts = @comment.posts.order(position: :asc).where("position > ?", @post.position).limit(2)