如何在ROR头中使用prev / next链接

我有每个艺术品的艺术品和详细页面数据库。 当我将以下代码添加到show.html.erb页面时,链接效果很好。 接下来带我到下一件艺术品,之前的回顾。 如果没有先前,则链接消失,反之亦然。

show.html.erb包括

      

但我真的想把这些链接放到我的标题中,它在我的应用程序页面中呈现为部分。 我注意到,当我将链接复制/粘贴到部分中时,我得到一个“Artworks中的NoMethodError #index undefined方法`previous’for nil:NilClass”。 我可以使用css在页面上移动链接,但这感觉很笨拙。 从标题部分中获取这些链接的正确方法是什么?

模型(artwork.rb)有

  def previous Artwork.where(["id  ?", id]).first end 

控制器(选定部分)

 def index if params[:tag] @artworks = Artwork.tagged_with(params[:tag]) elsif params[:series] @artworks = Artwork.tagged_with(params[:series]) else @artworks = Artwork.all end end def show @artwork = Artwork.friendly.find(params[:id]) end 

application.html.erb有

  

而不是检查是否存在nextprevious也检查以确保@artwork存在:

 <% if @artwork.present? %> <% if @artwork.next.present? %> <%= link_to "Next →".html_safe, @artwork.next %> <% end %> <% if @artwork.previous.present? %> <%= link_to "← Previous".html_safe, @artwork.previous %> <% end %> <% end %>