我在博客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;似乎链接到第一篇文章,而不是之前的文章。我做错了什么?
答案 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