Rails App中的上一篇文章

时间:2016-03-11 15:54:01

标签: ruby-on-rails

我在博客rails应用程序中实现了prev / next post方法,但之前的方法是错误的。

不知道该怎么做
class object std::vector

然后在我看来:

# app/models/post.rb

def next
  Post.where("id > ?", id).limit(1).first
end

def prev
  Post.where("id < ?", id).limit(1).first
end

&#34;接着&#34;效果很好,但&#34; prev&#34;似乎链接到第一篇文章,而不是之前的文章。我做错了什么?

2 个答案:

答案 0 :(得分:1)

这是因为您没有指定排序顺序。如果next也没有工作(有时候),我不会感到惊讶。当您依赖于事物的顺序时,请明确指定它。

def next
  Post.where("id > ?", id).order(id: :asc).limit(1).first
end

def prev
  Post.where("id < ?", id).order(id: :desc).limit(1).first
end

答案 1 :(得分:0)

尝试使用.last

def prev
  Post.where("id < ?", id).limit(1).last
end