我在Padrino工作并在我的控制器中有这个
@work.find_by_id(params[:id])
我想在我的视图中添加prev / next按钮,因此必须能够获取列表中下一个项目的路径。我怎么能用ActiveRecord做到这一点?
答案 0 :(得分:0)
您可能想要结帐ActsAsAdjacent plugin。我不确定你是否可以使用Padrino的插件,但代码非常简单,应该能够适应你的需求。
答案 1 :(得分:0)
我使用PreviousNextable模块,如下所示:
module PreviousNextable
def self.included(klass)
klass.class_eval do
extend ActiveSupport::Memoizable
memoize :previous
memoize :next
end
end
def previous
self.class.last :order => 'name', :conditions => ['name < ?', self.name]
end
def next
self.class.first :order => 'name', :conditions => ['name > ?', self.name]
end
end
此代码改编自Ryan Bates给出的SO答案。您确定之前或之后的订单和条件可能会有所不同。可能你会想要使用'created_at'。
在模型类中包含模块:
class Place < ActiveRecord::Base
include PreviousNextable
然后你就离开了。