这是我的模特:
def next
self.class.find(:first,
:conditions => ['id > ?', self.id],
:order => 'id')
end
def previous
self.class.find(:first,
:conditions => ['id < ?', self.id],
:order => 'id desc')
end
以及展示页面上的代码:
<button align="center" type="button" class="btn btn- btn-xs">
<%= link_to("Previous Image", pin_url(@pin.next))%> </button>
<button align="center" type="button" class="btn btn- btn-xs">
<%= link_to("Next Image", pin_url(@pin.previous)) %> </button> </P>
除非您在数据库中的第一个或最后一个记录,否则此功能非常有用。我收到了这个错误:
没有路线匹配{:action =&gt;“show”,:controller =&gt;“pins”,:id =&gt; nil}
当用户在第一张和最后一张记录上导航时,如何避免此错误?
答案 0 :(得分:0)
您可以将辅助方法更改为
def next_image
self.class.where('id > ?', self.id).order('id asc').first
end
def previous
self.class.where('id < ?', self.id).order('id desc').first
end
然后在视图中:
<% prev = @pin.previous %>
<% next_image = @pin.next_image %>
<%= link_to 'Previous image', pin_url(prev) if prev.present? %>
<%= link_to 'Next image', pin_url(next_image) if next_image.present? %>