我在帕德里诺工作,并在我的控制器中有这个
@work.find_by_id(params[:id])
我想在我的视图中添加上一个/下一个按钮,因此必须能够获得列表中下一个项目的路径。如何使用 ActiveRecord 做到这一点?
我在帕德里诺工作,并在我的控制器中有这个
@work.find_by_id(params[:id])
我想在我的视图中添加上一个/下一个按钮,因此必须能够获得列表中下一个项目的路径。如何使用 ActiveRecord 做到这一点?
您可能需要查看ActsAsAdjacent 插件。我不确定您是否可以在 Padrino 中使用插件,但代码非常简单,应该能够适应您的需求。
我像这样使用 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
你走了。