我在我的Blog Rails应用程序中实现了prev / next post方法,但是先前的方法给出了错误。不知道该怎么办
# app/models/post.rb
def next
Post.where("id > ?", id).limit(1).first
end
def prev
Post.where("id < ?", id).limit(1).first
end
然后在我看来:
# app/views/posts/show.html.erb
<%= link_to "Prev Post", @post.prev %>
<%= link_to "Next Post", @post.next %>
“下一个”可以完美地工作,但是“上一个”似乎链接到所写的第一篇文章,而不是之前的文章。我究竟做错了什么?
这是因为您未指定排序顺序。如果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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句